home *** CD-ROM | disk | FTP | other *** search
/ boe.pres.k12.wv.us / boe.pres.k12.wv.us.zip / boe.pres.k12.wv.us / Utilities / 3com 3c905c-tx.EXE / Windows / Update / Source / Oemsetup.inf < prev    next >
INI File  |  2002-09-25  |  106KB  |  3,174 lines

  1.     
  2. [InstallOptions]
  3.  Install_3NIC_Diag = "NO"
  4.  Install_Shortcuts = "NO"
  5.  Install_Installer = "NO"    
  6.  
  7.  
  8. [Identification]
  9.  OptionType = NetAdapter
  10.  
  11.  
  12. [PlatformsSupported]
  13.  ISA
  14.  EISA
  15.  PCI
  16.  "Jazz-Internal Bus"
  17. ForListDo $(ToInstallList)
  18.  
  19. [Options]
  20.  3C90X 
  21.  3C905 
  22.  3C900 
  23.  
  24.  
  25. [NDDriverConstantsNDIS3]
  26.  ND3NDNetEventDLL = "%SystemRoot%\System32\netevent.dll;%SystemRoot%\System32\drivers\el90xnd3.sys"
  27.  ND3NDProdSWImagePath = "%SystemRoot%\System32\drivers\el90xnd3.sys"
  28.  ND3NDProdSWUpgradePath = "\SystemRoot\System32\drivers\el90xnd3.sys"
  29.  
  30.  
  31. [NDDriverConstantsNDIS4]
  32.  ND4NDNetEventDLL = "%SystemRoot%\System32\netevent.dll;%SystemRoot%\System32\drivers\el90xnd4.sys"
  33.  ND4NDProdSWImagePath = "%SystemRoot%\System32\drivers\el90xnd4.sys"
  34.  ND4NDProdSWUpgradePath = "\SystemRoot\System32\drivers\el90xnd4.sys"
  35.  
  36.  
  37. [BCDriverConstantsNDIS3]
  38.  ND3BCNetEventDLL = "%SystemRoot%\System32\netevent.dll;%SystemRoot%\System32\drivers\el90xbc3.sys"
  39.  ND3BCProdSWImagePath = "%SystemRoot%\System32\drivers\el90xbc3.sys"
  40.  ND3BCProdSWUpgradePath = "\SystemRoot\System32\drivers\el90xbc3.sys"
  41.  
  42.  
  43. [BCDriverConstantsNDIS4]
  44.  ND4BCNetEventDLL = "%SystemRoot%\System32\netevent.dll;%SystemRoot%\System32\drivers\EL90xBC4.sys"
  45.  ND4BCProdSWImagePath = "%SystemRoot%\System32\drivers\EL90xBC4.sys"
  46.  ND4BCProdSWUpgradePath = "\SystemRoot\System32\drivers\EL90xBC4.sys"
  47.  
  48.  
  49. ;**************************************************************************************************
  50.  
  51.  
  52. [FileConstants]
  53.  UtilityInf = "UTILITY.INF"
  54.  subroutineinf = "SUBROUTN.INF"
  55.  SWType = "driver"
  56.  Exit_Code = 0
  57.  IoLogMsgDLL = "%SystemRoot%\System32\IoLogMsg.dll"
  58.  NetworkCardsKey = $(!NTN_SoftwareBase)"\Microsoft\Windows NT\CurrentVersion\NetworkCards\"
  59.  FunctionTitle = "3Com 3C90x Adapter Card Setup"
  60.  3CNUMBER = "3C90X"
  61.  GROUP_NAME = "3Com EtherLink PCI NIC" 
  62.  ProdHWXXXXXTitle = "3Com EtherLink PCI NIC "
  63.  ProdHWXXXXXDesc = "3Com EtherLink PCI NIC "
  64.  Manufacturer = "3Com"
  65.  EtherDiskVersion = "5.4.3"
  66.  ProdMajorVer = "1"
  67.  ProdMinorVer = "0"
  68.  ProdReview = "1"
  69.  ProdVer = $(ProdMajorVer)"."$(ProdMinorVer) 
  70.  ProdSWDesc = "3Com 3C90x Adapter BC Driver"
  71.  ProdSWTitle = "3Com 3C90x Adapter BC Driver"
  72.  ProdSWName = "El90x"
  73.  NetRuleSWType = "El90xSys ndisDriver El90xDriver"
  74.  NetRuleSWUse = $(SWType)
  75.  NetRuleSWBindForm = """El90xSys"" yes no container"
  76.  NetRuleSWClass = {"El90xDriver basic"}
  77.  NetRuleSWBindable = {"El90xDriver El90xAdapter non exclusive 100"}
  78.  ProdHWName = "El90x"
  79.  NetRuleHWBindForm = " yes yes container"
  80.  NetRuleHWType = "El90x El90xAdapter"
  81.  NetRuleHWClass = {"El90xAdapter basic"}
  82.  ProdKeyName = $(!NTN_SoftwareBase)"\"$(Manufacturer)"\"$(ProdSWName)"\CurrentVersion"
  83.  ParamKeyName = $(!NTN_ServiceBase)"\"$(ProdHWName)"\Parameters"
  84.  Hardware_Default = "HardwareDefault"
  85.  DiagExe = TCAUDIAG
  86.  NICPROP = NICPROP
  87.  DIAGCARDTYPE = "TCAUM90X"
  88.  TrayIconExe = TCAUDIAG
  89.  InstallerExe = TCAUDIAG
  90.  UnInstallerEXE = UN3C90XA 
  91.  
  92. [BoomFileConstants]
  93.  NDProdSWDesc = "3Com 3C90x Adapter ND Driver"
  94.  NDProdSWTitle = "3Com 3C90x Adapter ND Driver"
  95.  NDProdSWName = "El90xnd"
  96.  NDNetRuleSWType = "El90xndSys ndisDriver El90xndDriver"
  97.  NDNetRuleSWBindForm = """El90xndSys"" yes no container"
  98.  NDNetRuleSWClass = {"El90xndDriver basic"}
  99.  NDNetRuleSWBindable = {"El90xndDriver El90xndAdapter non exclusive 100"}
  100.  NDProdHWName = "El90xnd"
  101.  NDNetRuleHWBindForm = " yes yes container"
  102.  NDNetRuleHWType = "El90xnd El90xndAdapter"
  103.  NDNetRuleHWClass = {"El90xndAdapter basic"}
  104.  NDProdKeyName = $(!NTN_SoftwareBase)"\"$(Manufacturer)"\"$(NDProdSWName)"\CurrentVersion"
  105.  NDParamKeyName = $(!NTN_ServiceBase)"\"$(NDProdHWName)"\Parameters"
  106.  
  107.  
  108. ;--------------------these NICs use old NDIS4 driver --------------------------------
  109.  
  110.  ProdHW36944Title = "3Com EtherLink 10/100 PCI NIC (3C905-TX)"
  111.  ProdHW36944Desc = "3Com EtherLink 10/100 PCI NIC (3C905-TX)"
  112.  
  113.  ProdHW36945Title = "3Com EtherLink 10/100 PCI T4 NIC (3C905-T4)"
  114.  ProdHW36945Desc = "3Com EtherLink 10/100 PCI T4 NIC (3C905-T4)"
  115.  
  116.  ProdHW36864Title = "3Com EtherLink 10 PCI TPO NIC (3C900-TPO)"
  117.  ProdHW36864Desc = "3Com EtherLink 10 PCI TPO NIC (3C900-TPO)" 
  118.  
  119.  ProdHW36865Title = "3Com EtherLink 10 PCI Combo  NIC (3C900-COMBO)"
  120.  ProdHW36865Desc = "3Com EtherLink 10 PCI Combo  NIC (3C900-COMBO)" 
  121.  
  122.  
  123.  
  124.  
  125.  
  126.  
  127. ;--------------------these NICs use new NDIS4 driver --------------------------------
  128.  
  129.  ProdHW36952Title = "3Com EtherLink 10/100 PCI Combo NIC (3C905B-COMBO)"
  130.  ProdHW36952Desc = "3Com EtherLink 10/100 PCI Combo NIC (3C905B-COMBO)"
  131.  
  132.  ProdHW37376NICTitle     = "3Com EtherLink 10/100 PCI NIC (3C905C-TX)"
  133.  ProdHW37376NICDesc     = "3Com EtherLink 10/100 PCI For Complete PC Management NIC (3C905C-TX)"
  134.  
  135.  ProdHW37376MiniPCITitle= "3Com 10/100 Mini PCI Ethernet Adapter"
  136.  ProdHW37376MiniPCIDesc = "3Com 10/100 Mini PCI Ethernet Adapter"
  137.  
  138.  ProdHW37376CatchAllTitle= "3Com 3C920 Integrated Fast Ethernet Controller (3C905C-TX Compatible)"
  139.  ProdHW37376CatchAllDesc = "3Com 3C920 Integrated Fast Ethernet Controller (3C905C-TX Compatible)"
  140.  
  141.  ProdHW36949CatchAllTitle= "3Com 3C918 Integrated Fast Ethernet Controller (3C905B-TX Compatible)"
  142.  ProdHW36949CatchAllDesc = "3Com 3C918 Integrated Fast Ethernet Controller (3C905B-TX Compatible)"
  143.  
  144.  ProdHW36949NICTitle     = "3Com EtherLink 10/100 PCI NIC (3C905B-TX)"
  145.  ProdHW36949NICDesc     = "3Com EtherLink 10/100 PCI TX NIC (3C905B-TX)"
  146.  
  147.  ProdHW36954Title     = "3Com EtherLink 100 PCI Fiber NIC (3C905B-FX)"
  148.  ProdHW36954Desc     = "3Com EtherLink 100 PCI Fiber NIC (3C905B-FX)" 
  149.  
  150.  ProdHW36868Title     = "3Com EtherLink 10 PCI TPO NIC (3C900B-TPO)"
  151.  ProdHW36868Desc     = "3Com EtherLink 10 PCI TPO NIC (3C900B-TPO)" 
  152.  
  153.  ProdHW36869Title     = "3Com EtherLink 10 PCI Combo NIC (3C900B-COMBO)"
  154.  ProdHW36869Desc     = "3Com EtherLink 10 PCI Combo NIC (3C900B-COMBO)" 
  155.  
  156.  ProdHW36870Title     = "3Com EtherLink 10 PCI TPC NIC (3C900B-TPC)"
  157.  ProdHW36870Desc     = "3Com EtherLink 10 PCI TPC NIC (3C900B-TPC)" 
  158.  
  159.  ProdHW36874Title     = "3Com EtherLink 10 PCI Fiber NIC (3C900B-FL)"
  160.  ProdHW36874Desc     = "3Com EtherLink 10 PCI Fiber NIC (3C900B-FL)" 
  161.  
  162.  ProdHW37377Title     = "3Com 3C920B-EMB Integrated Fast Ethernet Controller"
  163.  ProdHW37377Desc     = "3Com 3C920B-EMB Integrated Fast Ethernet Controller"
  164.  
  165.  
  166. ;---- OLD NAMES OF 90XBC NICs, THESE NAMES USED FOR CHECKING IF THE NIC ALREADY INSTALLED 
  167.  
  168.  OLDProdHW36944Desc = "3Com Fast EtherLink XL 10/100Mb TX Ethernet NIC (3C905-TX)"
  169.  OLDProdHW36945Desc = "3Com Fast EtherLink XL 10/100Mb T4 Ethernet NIC (3C905-T4)"
  170.  OLDProdHW36949Desc = "3Com Fast EtherLink XL 10/100Mb TX Ethernet NIC (3C905B-TX)"
  171.  OLDProdHW36954Desc = "3Com Fast EtherLink XL 10/100Mb FX Ethernet NIC (3C905B-FX)"
  172.  OLDProdHW36864Desc = "3Com EtherLink XL TPO 10Mb Ethernet NIC (3C900-TPO)" 
  173.  OLDProdHW36865Desc = "3Com EtherLink XL COMBO 10Mb Ethernet NIC (3C900-COMBO)" 
  174.  OLDProdHW36868Desc = "3Com EtherLink XL TPO 10Mb Ethernet NIC (3C900B-TPO)" 
  175.  OLDProdHW36869Desc = "3Com EtherLink XL COMBO 10Mb Ethernet NIC (3C900B-COMBO)" 
  176.  OLDProdHW36870Desc = "3Com EtherLink XL TPC 10Mb Ethernet NIC (3C900B-TPC)" 
  177.  OLDProdHW36874Desc = "3Com EtherLink XL FL 10Mb Ethernet NIC (3C900B-FL)" 
  178.  OLDProdHW36952Desc = "3Com EtherLink XL COMBO 10/100Mb Ethernet NIC (3C905B-COMBO)"
  179.  
  180.  
  181. ; EtherDisk5.0 have diff. desc. for 10Mb cards, so we need to check that, too.
  182.  
  183.  ED50HW36868Desc = "3Com EtherLink PCI TPO NIC (3C900B-TPO)"
  184.  ED50HW36864Desc = "3Com EtherLink PCI TPO NIC (3C900-TPO)"
  185.  ED50HW36865Desc = "3Com EtherLink PCI Combo  NIC (3C900-COMBO)"
  186.  ED50HW36869Desc = "3Com EtherLink PCI Combo NIC (3C900B-COMBO)"
  187.  ED50HW36870Desc = "3Com EtherLink PCI TPC NIC (3C900B-TPC)" 
  188.  ED50HW36874Desc = "3Com EtherLink PCI Fiber NIC (3C900B-FL)" 
  189.  
  190. ;------------------------------------------------------------------------------------------------
  191.  
  192.  
  193. ; List of NICs
  194.  CFIDList = {36944, 36945, 36864, 36865,36868, 36869, 36870, 36874, 36949, 36952, 36954, 37376, 37377}
  195.  AdapterType = 5
  196.  
  197. NT4_CFG = NT4_CFG
  198.  
  199.  
  200. [GeneralConstants]
  201.  from = ""
  202.  to = ""
  203.  ExitCodeOk = 0
  204.  ExitCodeCancel = 1 
  205.  ExitCodeFatal = 2
  206.  KeyNull = ""
  207.  MAXIMUM_ALLOWED = 33554432
  208.  RegistryErrorIndex = NO_ERROR
  209.  KeyProduct = ""
  210.  KeyParameters = ""
  211.  TRUE = 1
  212.  FALSE = 0
  213.  NoTitle = 0
  214.  ExitState = "Active"
  215.  OldVersionExisted = $(FALSE)
  216.  DriverPath = $(!STF_NTPATH)\drivers
  217.  NT350VersionConstant = "3.50"
  218.  NT310VersionConstant = "3.10"
  219.  NT400VersionConstant = "(4.0)"
  220.  INF_PROCESSER = "I386"
  221.  
  222. enum                    = "enum"
  223. int                    = "int"
  224. long                    = "long"
  225.  
  226. disable                    = "DISABLE"
  227. enable                    = "ENABLE"
  228. disable_value                = "DISABLE"
  229. enable_value                = "ENABLE"
  230. basic                    = "Basic"
  231. enhanced                = "Enhanced"
  232. media_select                  = "Media Select"
  233. media_auto                    = "Auto-Negotiate"
  234. media_10_full                 = "10 Mbps, Full-Duplex"
  235. media_10_half                 = "10 Mbps, Half-Duplex"
  236. media_100_full               = "100 Mbps, Full-Duplex"
  237. media_100_half                = "100 Mbps, Half-Duplex"
  238. media_default                 = "Hardware Default"
  239. flow_control                = "Flow Control"
  240. rom_boot                = "ROMBoot"
  241. self_healing                = "Self Healing"
  242. num_tx_entries                = "Descriptors: Transmit"
  243. num_rx_entries                = "Descriptors: Receive"
  244. ipsec_offload                = "Offload: IPSec"
  245. tcpseg_offload                = "Offload: TCP Segmentation"
  246. checksum_offload            = "Offload: IP Checksum"
  247. vlan_offload                = "Offload: 802.1p"
  248. GenTxThreshold                = "Transmit broadcast limiting"
  249.  
  250.  
  251. [date]
  252.  Now = {} ? $(!LIBHANDLE) GetSystemDate
  253.  
  254.  
  255. [Identify]
  256.  read-syms Identification
  257.  set Status = STATUS_SUCCESSFUL
  258.  set Identifier = $(OptionType)
  259.  set Media = #("Source Media Descriptions", 1, 1)
  260.  Return $(Status) $(Identifier) $(Media)
  261.  
  262.  
  263. [ReturnOptions]
  264.  set Status = STATUS_FAILED
  265.  set OptionList = {}
  266.  set OptionTextList = {}
  267.  set LanguageList = ^(LanguagesSupported, 1)
  268.  Ifcontains(i) $($0) in $(LanguageList)
  269.  ifstr(i) $($1) == ""
  270.  goto returnoptions
  271.  endif
  272.  set PlatformList = ^(PlatformsSupported, 1)
  273.  Ifcontains(i) $($1) in $(PlatformList)
  274.  goto returnoptions
  275.  else
  276.  set Status = STATUS_NOTSUPPORTED
  277.  goto finish_ReturnOptions
  278.  endif
  279.  else
  280.  set Status = STATUS_NOLANGUAGE
  281.  goto finish_ReturnOptions
  282.  endif
  283.  
  284.  
  285. returnoptions = +
  286.  set OptionList = ^(Options, 1)
  287.  set OptionTextList = ^(OptionsText$($0), 1)
  288.  set Status = STATUS_SUCCESSFUL
  289.  
  290.  
  291. finish_ReturnOptions = +
  292.  Return $(Status) $(OptionList) $(OptionTextList)
  293.  
  294.  
  295. [checkFileExist]
  296.  DiagFound = {} ? $(!LIBHANDLE) FindFileInstances $(!STF_WINDOWSSYSPATH)"\tcaudiag.exe" 
  297.  
  298.  
  299. [DiagRegistry]
  300.  OpenRegKey $(!REG_H_LOCAL) "" "SOFTWARE" $(!REG_KEY_WRITE) SOFTKEY
  301.  OpenRegKey $(SOFTKEY) "" "3Com" $(!REG_KEY_WRITE) COMKEY
  302.  ifstr $(COMKEY) == ""
  303.     CreateRegKey $(SOFTKEY) {"3Com", 0, GenericClass} "" $(!REG_KEY_WRITE) "" COMKEY
  304.  endif
  305.  
  306.  OpenRegKey $(COMKEY) "" "TCAUDIAG" $(!REG_KEY_WRITE) TCAUDIAGKEY
  307.  ifstr $(TCAUDIAGKEY) == ""
  308.     CreateRegKey $(COMKEY) {"TCAUDIAG", 0, GenericClass} "" $(!REG_KEY_WRITE) "" TCAUDIAGKEY
  309.  endif
  310.  
  311.  OpenRegKey $(TCAUDIAGKEY) "" "TCAUM90X" $(!REG_KEY_WRITE) TCAUM90XKEY
  312.  ifstr $(TCAUM90XKEY) == ""
  313.     CreateRegKey $(TCAUDIAGKEY) {"TCAUM90X", 0, GenericClass} "" $(!REG_KEY_WRITE) "" TCAUM90XKEY
  314.  endif
  315.  
  316.  SetRegValue $(TCAUM90XKEY) {"DriverNames", 0, $(!REG_VT_SZ), "3C90X.COM;EL90X.DOS;SYSTEM\EL90XND3.SYS;SYSTEM\EL90XND4.SYS;SYSTEM\EL90XBC4.SYS"}
  317.  OpenRegKey $(TCAUM90XKEY) "" "Extensions" $(!REG_KEY_WRITE) ExtensionsKEY
  318.  ifstr $(ExtensionsKEY) == ""
  319.     CreateRegKey $(TCAUM90XKEY) {"Extensions", 0, GenericClass} "" $(!REG_KEY_WRITE) "" ExtensionsKEY
  320.  endif
  321.  
  322.  OpenRegKey $(ExtensionsKEY) "" "DA" $(!REG_KEY_WRITE) DAKEY
  323.  ifstr $(DAKEY) == ""
  324.     CreateRegKey $(ExtensionsKEY) {"DA", 0, GenericClass} "" $(!REG_KEY_WRITE) "" DAKEY
  325.  endif
  326.  
  327.  CloseRegKey $(SOFTKEY)
  328.  CloseRegKey $(COMKEY)
  329.  CloseRegKey $(TCAUDIAGKEY)
  330.  CloseRegKey $(TCAUM90XKEY)
  331.  CloseRegKey $(ExtensionsKEY)
  332.  CloseRegKey $(DAKEY)
  333.  return
  334.  
  335.  
  336. [InstallOption]
  337.  set CurrLang = $($0)
  338.  set Option = $($1)
  339.  set SrcDir = $($2)
  340.  set AddCopy = $($3)
  341.  set DoCopy = $($4)
  342.  set DoConfig = $($5)
  343.  set LanguageList = ^(LanguagesSupported, 1)
  344.  Ifcontains(i) $($0) NOT-IN $(LanguageList)
  345.     Return STATUS_NOLANGUAGE
  346.  endif
  347.  
  348.  set-subst LF = "\n"
  349.  read-syms InstallOptions
  350.  read-syms GeneralConstants
  351.  read-syms FileConstants
  352.  read-syms BoomFileConstants 
  353.  read-syms DialogConstants$(!STF_LANGUAGE)
  354.  ifstr(i) $(!NTN_Origination) == "NCPA"
  355.     set Continue = "OK"
  356.  endif
  357.  
  358.  read-syms FileConstants$(!STF_LANGUAGE)
  359.  detect date
  360.  set-title $(FunctionTitle)
  361.  set to = Begin
  362.  set from = Begin
  363.  set CommonStatus = STATUS_SUCCESSFUL
  364.  EndWait
  365.  
  366.  
  367. Begin = +
  368.  ;*********** add this to check correct platform supported********
  369.    ifstr(i) $(!STF_PLATFORM) == "Alpha"      
  370.       set CommonStatus = STATUS_USERCANCEL
  371.       goto end
  372.    else-ifstr(i) $(!STF_PLATFORM) == "Alpha_AXP"
  373.       set CommonStatus = STATUS_USERCANCEL
  374.       goto end
  375.    endif
  376.  ;*****************************************************************
  377.  
  378.  set CurrentVersionValue = ""
  379.  OpenRegKey $(!REG_H_LOCAL) "" "SOFTWARE\Microsoft\Windows Nt\CurrentVersion" $(!REG_KEY_READ) KeyNt
  380.  Ifstr(i) $(KeyNt) != ""
  381.      GetRegValue $(KeyNt) "CurrentVersion" CurrentVersionValue
  382.      Debug-Output "$(InfFile) : WinNT CurrentVersion ="$(CurrentVersionValue)
  383.      CloseRegKey $(KeyNt)
  384.  Endif
  385.  
  386.  ifstr(i) (*($(CurrentVersionValue),4)) == $(NT400VersionConstant)
  387.     set NDIS_VER = NDIS4     
  388.  else
  389.     set NDIS_VER = NDIS3
  390.  endif
  391.  
  392.  read-syms BCDriverConstants$(NDIS_VER)
  393.  read-syms NDDriverConstants$(NDIS_VER)
  394.  ifstr(i) (*($(CurrentVersionValue),4)) == $(NT310VersionConstant) 
  395.      Debug-Output "$(InfFile) : Configureadapter"
  396.      set Error = "Windows NT v3.10 is not support by this product"
  397.      goto fatal
  398.  endif
  399.   
  400.  Ifstr(i) $(!NTN_InstallMode) == deinstall
  401.     set StartLabel = removeadapter
  402.  
  403.  else-Ifstr(i) $(!NTN_InstallMode) == Update
  404.     set StartLabel = UpgradeSoftware
  405.  
  406.  else-Ifstr(i) $(!NTN_InstallMode) == bind
  407.     set StartLabel = bindingadapter
  408.  
  409.  else-Ifstr(i) $(!NTN_InstallMode) == configure   
  410.     ifstr $(!STF_PLATFORM) == $(INF_PROCESSER)
  411.         
  412.         ifstr(i) (*($(CurrentVersionValue),4)) == $(NT400VersionConstant)
  413.             OpenRegKey $(!REG_H_LOCAL) "" "SOFTWARE\3Com\TCAUDIAG\TCAUM90X" $(!REG_KEY_READ) TCAUDIAGKEY
  414.              ifstr $(TCAUDIAGKEY) != ""         
  415.                 detect checkFileExist
  416.                 set Diag = *($(DiagFound), 1)
  417.                 ifstr(i) $(Diag) == "tcaudiag.exe"
  418.                     ; UN-Block the spawning of TD-Diags upon the "Properties" event in the NCP
  419.                     StartDetachedProcess ExitCode "Windows Directory" "" $(DiagExe).EXE
  420.  
  421.                 else    
  422.     
  423.         OpenRegKey $(!REG_H_LOCAL) "" $(!NTN_RegBase) $(!REG_KEY_ALL_ACCESS) NICKey
  424.            Ifstr(i) $(NICKey) != "" ; key exists
  425.                  GetRegValue $(NICKey) "ServiceName" ServiceNameList
  426.  
  427.                  ;Determine the Service Name and put in var NICServiceName 
  428.                 set NICServiceName = *($(ServiceNameList), 4)
  429.         endif
  430.         CloseRegKey $(NICKey)
  431.  
  432.         ;shell "subroutn.inf" SetupMessage $(!STF_LANGUAGE) "NONFATAL" "Command Line parameter is -ServiceName_"$(NICServiceName)""
  433.         ;"Windows Directory" being the system32 dir
  434.         RunProgram ExitCode "Windows Directory" "" $(NT4_CFG).EXE -ServiceName_$(NICServiceName)
  435.  
  436.         ;  RunProgram ExitCode "Windows Directory" "" $(InstallerExe).EXE
  437.          set CommonStatus = STATUS_USERCANCEL
  438.          goto end
  439.  
  440.                 ;StartDetachedProcess ExitCode "Windows Directory" "" NT4_CFG.EXE $(!NTN_RegBase)
  441.  
  442.                 endif
  443.  
  444.  
  445.             CloseRegKey $(TCAUDIAGKEY)    
  446.  
  447.             else    
  448.  
  449.     
  450.         OpenRegKey $(!REG_H_LOCAL) "" $(!NTN_RegBase) $(!REG_KEY_ALL_ACCESS) NICKey
  451.            Ifstr(i) $(NICKey) != "" ; key exists
  452.                  GetRegValue $(NICKey) "ServiceName" ServiceNameList
  453.  
  454.                  ;Determine the Service Name and put in var NICServiceName 
  455.                 set NICServiceName = *($(ServiceNameList), 4)
  456.         endif
  457.         CloseRegKey $(NICKey)
  458.  
  459.         ;shell "subroutn.inf" SetupMessage $(!STF_LANGUAGE) "NONFATAL" "Command Line parameter is -ServiceName_"$(NICServiceName)""
  460.         ;"Windows Directory" being the system32 dir
  461.         RunProgram ExitCode "Windows Directory" "" $(NT4_CFG).EXE -ServiceName_$(NICServiceName)
  462.  
  463.         ;  RunProgram ExitCode "Windows Directory" "" $(InstallerExe).EXE
  464.          set CommonStatus = STATUS_USERCANCEL
  465.          goto end
  466.  
  467.  
  468.                 StartDetachedProcess ExitCode "Windows Directory" "" NT4_CFG.EXE $(!NTN_RegBase)
  469.  
  470.             endif
  471.  
  472.  
  473.         set CommonStatus = STATUS_USERCANCEL
  474.         goto end
  475.  
  476.         else
  477.             set StartLabel = configureadapter
  478.         endif
  479.    
  480.  
  481.     else-Ifstr(i) $(ProdKeyName) == $(!NTN_RegBase)
  482.         Shell $(UtilityInf),RegistryErrorString,CANNOT_CONFIGURE_SOFTWARE
  483.         ifint $($ShellCode) != $(!SHELL_CODE_OK)           
  484.             goto ShellCodeError
  485.         endif
  486.  
  487.         set Error = $($R0)
  488.         set from = end
  489.         set to = end
  490.         goto nonfatalinfo
  491.  
  492.  
  493.  
  494.  
  495.     else-Ifstr(i) $(NDProdKeyName) == $(!NTN_RegBase)
  496.         Shell $(UtilityInf),RegistryErrorString,CANNOT_CONFIGURE_SOFTWARE
  497.         ifint $($ShellCode) != $(!SHELL_CODE_OK)           
  498.             goto ShellCodeError
  499.         endif      
  500.  
  501.         set Error = $($R0)
  502.         set from = end
  503.         set to = end
  504.         goto nonfatalinfo
  505.  
  506.     else
  507.         set StartLabel = configureadapter
  508.     endif
  509.  
  510.  else
  511.     set StartLabel = installadapter
  512.     set OEM_ABANDON_OPTIONS = {}
  513.     set OEM_ABANDON_SOFTWARE = FALSE
  514.     set OEM_ABANDON_ON = TRUE
  515.  endif
  516.  
  517.  
  518.  Debug-Output "$(InfFile) : =================================================="
  519.  Debug-Output "$(InfFile) : STF_CWDIR is: "$(!STF_CWDIR)
  520.  Debug-Output "$(InfFile) : STF_SRCDIR is: "$(!STF_SRCDIR)
  521.  Debug-Output "$(InfFile) : STF_LANGUAGE is: "$(!STF_LANGUAGE)
  522.  Debug-Output "$(InfFile) : Option is: "$(Option)
  523.  Debug-Output "$(InfFile) : !STF_NCN_InstallMode is:"$(!NTN_InstallMode)
  524.  Debug-Output "$(InfFile) : !STF_NCDETECT is: "$(!STF_NCDETECT)
  525.  Debug-Output "$(InfFile) : !STF_NCOPTION is: "$(!STF_NCOPTION)
  526.  Debug-Output "$(InfFile) : !STF_NCDETCARD is: "$(!STF_NCDETCARD)
  527.  Debug-Output "$(InfFile) : !STF_NCDETINFO is: "$(!STF_NCDETINFO)
  528.  Debug-Output "$(InfFile) : !STF_GUI_UNATTENDED is: "$(!STF_GUI_UNATTENDED)
  529.  Debug-Output "$(InfFile) : !STF_BusType is $(!STF_BUSTYPE)" 
  530.  Debug-Output "$(InfFile) : !STF_BusTypeList is $(!STF_BUSTYPELIST)" 
  531.  Debug-Output "$(InfFile) : =================================================="
  532.  
  533.  set from = $(fatal)
  534.  set to = $(fatal)
  535.  goto $(StartLabel)
  536.  
  537.  
  538. installadapter = +
  539.  Debug-Output "$(InfFile) : Installadapter" 
  540.  OpenRegKey $(!REG_H_LOCAL) "" $(ProdKeyName) $(!REG_KEY_READ) KeyProduct
  541.  Ifstr $(KeyProduct) != $(KeyNull)
  542.     CloseRegKey $(KeyProduct)
  543.     ifstr(i) !(NTN_RegBase) == $(ProdKeyName)
  544.         ifint $($ShellCode) != $(!SHELL_CODE_OK)
  545.             Debug-Output "ShellCode error: cannot get an error string."
  546.             goto ShellCodeError
  547.         endif
  548.         goto end
  549.     else
  550.           ;********* add this because of 2 service names *******************************
  551.        OpenRegKey $(!REG_H_LOCAL) "" $(NDProdKeyName) $(!REG_KEY_READ) KeyProduct
  552.        Ifstr $(KeyProduct) != $(KeyNull)
  553.             CloseRegKey $(KeyProduct)
  554.             ifstr(i) !(NTN_RegBase) == $(NDProdKeyName)
  555.                 ifint $($ShellCode) != $(!SHELL_CODE_OK)
  556.                     Debug-Output "ShellCode error: cannot get an error string."
  557.                     goto ShellCodeError
  558.                 endif
  559.                 goto end
  560.             else
  561.                 set OldVersionExisted = $(TRUE)
  562.             endif
  563.        Endif
  564.        ;*****************************************************************************
  565.        ;;;set OldVersionExisted = $(TRUE)
  566.     endif
  567.  Endif
  568.  Goto adapteroptions 
  569.  
  570.  
  571. configureadapter = +
  572.  Debug-Output "$(InfFile) : Configureadapter"
  573.  set Error = "Cannot configure the software component"
  574.  goto fatal
  575.  
  576.  
  577. adapteroptions = +
  578.  Debug-Output "$(InfFile) : Adapteroptions"
  579.  set from = adapteroptions
  580.  ifstr(i) $(!NTN_InstallMode) == configure
  581.     goto updateparameters
  582.  endif
  583.  
  584.  
  585. installproduct =+
  586.  install "Install-OTHER"
  587.  Debug-Output "$(InfFile) : installproduct"
  588.  StartWait 
  589.  set AdapterList = $($R1)
  590.  
  591.  Debug-Output "$(InfFile) : About to look for 3Com PCI Cards"
  592.  set TargetVersion = *($(CurrentVersionValue),4)
  593.  
  594.  Debug-Output "$(InfFile) : Current Version:"$(TargetVersion)
  595.  ifstr $(TargetVersion) == $(NT350VersionConstant) 
  596.     Debug-Output "Running on WindowsNT 3.50"
  597.     set Version350 = $(TRUE)
  598.  else
  599.      Debug-Output "Running on WindowsNT 3.51 or higher"
  600.      set Version350 = $(FALSE)
  601.  endif
  602.  
  603.  ifint $(Version350) == $(TRUE)
  604.  Debug-Output "Running on WindowsNT v3.50, Not using PCI Detection!!!"
  605.  
  606.     ifstr $(!STF_GUI_UNATTENDED) == "YES"
  607.         Debug-Output "$(InfFile) : Running in GUI unattended mode"
  608.         ifstr(i) $(!AutoNetInterfaceType) != ""
  609.             set BusInterfaceType = $(!AutoNetInterfaceType)
  610.         else
  611.             set BusInterfaceType = 5
  612.         endif
  613.  
  614.         ifstr(i) $(!AutoNetBusNumber) != ""
  615.             set BusNumber = $(!AutoNetBusNumber)
  616.         else
  617.             set BusNumber = 0
  618.         endif
  619.  
  620.     set NTDetected = $(FALSE)
  621.     set AdapterList = {{$(Option),0, XXXXX}} 
  622.     Debug-Output "$(InfFile) : BusInterfaceType = $(BusInterfaceType)"
  623.     Debug-Output "$(InfFile) : BusNumber = $(BusNumber)"
  624.     
  625.     else     ;;; GUI_UNATTENDED=NO
  626.         Debug-Output "$(InfFile) : Running 3.50 Bus Dialog"
  627.         set BusInterfaceType = 5
  628.         set BusNumber = 0
  629.         set NTDetected = $(FALSE)
  630.         Shell $(UtilityInf),GetBusTypeDialog,$(ProdHWXXXXXDesc) $(BusInterfaceType) $(BusNumber)
  631.         ifint $($ShellCode) != $(!SHELL_CODE_OK)
  632.              Debug-Output "ShellCode error."
  633.              goto ShellCodeError
  634.         endif
  635.  
  636.         set BusInterfaceType = $($R1)
  637.         set BusNumber = $($R2)
  638.         set AdapterList = {{$(Option),0, XXXXX}} 
  639.         Debug-Output "$(InfFile) : BusInterfaceType = $(BusInterfaceType)"
  640.         Debug-Output "$(InfFile) : BusNumber = $(BusNumber)"
  641.     endif    ;;; end check GUI_UNATTENDED
  642.  
  643.  
  644.  else      ;;; Version350=FALSE
  645.      Debug-Output "$(InfFile) : Running 3.51 or higher using PCI Dectection"
  646.      set NTDetected = $(TRUE)
  647.      set Vendor = 4279 
  648.      set CFIDList = $(CFIDList)
  649.      Debug-Output "$(InfFile) : VendorID = $(Vendor)"
  650.      Debug-Output "$(InfFile) : CFIDList = $(CFIDList)"
  651.      set AdapterList = {}
  652.  
  653.      ForListDo $(CFIDList)
  654.          set-div CFID = $($) 1
  655.          set DeviceID = $($)
  656.          Shell $(UtilityInf), GetPCIInformation, $(Vendor) $(CFID)
  657.          ifint $($ShellCode) != $(!SHELL_CODE_OK)
  658.             goto ShellCodeError
  659.          endif
  660.  
  661.          ForListDo $($R0)
  662.             set AdapterList = >($(AdapterList), {*($($),1), *($($),2), $(DeviceID)})
  663.          EndForListDo
  664.  
  665.      EndForListDo
  666.  
  667.      ifstr(i) $(AdapterList) == {}                 
  668.          set Error = $(CANNOT_FIND_ANY_CARD)
  669.          set CommonStatus = USER_CANCEL
  670.          set from = end
  671.          goto nonfatal
  672.      endif
  673.  endif 
  674.  
  675.  set ToInstallList = {}
  676.  Debug-Output "$(InfFile) : Adapterlist = $(AdatperList)"
  677.  
  678.  
  679.  
  680.  ForListDo $(AdapterList)
  681.     ifint $(NTDetected) == $(TRUE)
  682.          set DetectedBusNum = *($($),1)
  683.          set DetectedSlotNum = *($($),2)
  684.          set DeviceID = *($($),3)
  685.     
  686.  
  687.         ; 1.) Call Executable to populate the reg key "SOFTWARE\3Com\PCI_DATA" with the PCI data the current instance of the NIC
  688.         RunProgram ExitCode  "" "" $(SrcDir)PCI_DATA.EXE /$(DetectedBusNum) /$(DetectedSlotNum) 
  689.  
  690.  
  691.         ; 2.) Check open key for the data of interest. *** DeviceID, SubSystemID, SubVendorID, and VendorID are present
  692.         
  693.         OpenRegKey $(!REG_H_LOCAL) "" "SOFTWARE\3Com\PCI_DATA" $(!REG_KEY_ALL_ACCESS) PCI_DATA_KEY 
  694.  
  695.         GetRegValue $(PCI_DATA_KEY) "DeviceID" Array_DeviceID
  696.         GetRegValue $(PCI_DATA_KEY) "VendorID" Array_VendorID
  697.         GetRegValue $(PCI_DATA_KEY) "SubSystemID" Array_SubSystemID
  698.         GetRegValue $(PCI_DATA_KEY) "SubVendorID" Array_SubVendorID
  699.  
  700.         Set Value_DeviceID     = *($(Array_DeviceID),4)
  701.         Set Value_VendorID     = *($(Array_VendorID),4)
  702.         Set Value_SubSystemID     = *($(Array_SubSystemID),4)
  703.         Set Value_SubVendorID     = *($(Array_SubVendorID),4)
  704.  
  705.         ;shell "subroutn.inf" SetupMessage $(!STF_LANGUAGE) "NONFATAL" "The detected DeviceID is ("$(Value_DeviceID)")"
  706.         ;shell "subroutn.inf" SetupMessage $(!STF_LANGUAGE) "NONFATAL" "The detected VendorID is ("$(Value_VendorID)")"
  707.         ;shell "subroutn.inf" SetupMessage $(!STF_LANGUAGE) "NONFATAL" "The detected SubSystemID is ("$(Value_SubSystemID)")"
  708.         ;shell "subroutn.inf" SetupMessage $(!STF_LANGUAGE) "NONFATAL" "The detected SubVendorID is ("$(Value_SubVendorID)")"
  709.  
  710.         ; 3.)    Stepthrough logic to determine card type
  711.  
  712.  
  713.  
  714.         ; 3Com Product
  715.         ifstr(i) $(Value_VendorID) == "10B7"
  716.  
  717.         ; 3C905C NIC / Mini PCI NIC
  718.  
  719.         ; 3C905C (NIC) ********************************************************
  720.         ifstr(i) $(Value_DeviceID) == "9200"
  721.             ifstr(i) $(Value_SubSystemID) == "1000"
  722.                 ifstr(i) $(Value_SubVendorID) == "10B7"
  723.  
  724.                     ; Only in this circumstance is it a 3Com NIC
  725.                     ; Vendor and SubVendor ID = 10B7 so it's not a LOM
  726.                     ; SubSystem ID  IS NOT(!)  a duplicate of Device ID
  727.  
  728.                     set DeviceID = 37376NIC
  729.                 endif
  730.             endif
  731.         endif
  732.  
  733.         ; 3C905C (Mini PCI NIC) ***********************************************
  734.         ifstr(i) $(Value_DeviceID) == "9200"
  735.             ifstr(i) $(Value_SubSystemID) == "7000"
  736.  
  737.                 ifstr(i) $(Value_SubVendorID) == "10B7"
  738.  
  739.                     ; Only in this circumstance is it a 3Com NIC
  740.                     ; Vendor and SubVendor ID = 10B7 so it's not a LOM
  741.                     ; SubSystem ID  IS NOT(!)  a duplicate of Device ID
  742.  
  743.                     set DeviceID = 37376MiniPCI
  744.                 endif
  745.             endif
  746.         endif
  747.  
  748.  
  749.         ; 3C905 Catch All *****************************************************
  750.         ifstr(i) $(Value_DeviceID) == "9200"
  751.             
  752.             ; *** The DeviceID is 9200 ***
  753.             ; *** The Vendor ID is 10B7 (3Com) but the SubVendorID IS NOT ***
  754.             ; *** You're in an OEM situation.  Break out of this iteration fo the Loop ***
  755.             ; *** SubSystemID is a don't care value.  OEMs can assign this to ANYTHING ***
  756.  
  757.             ifstr(i) $(Value_SubVendorID) != "10B7"
  758.                 set DeviceID = 37376CatchAll
  759.             endif
  760.  
  761.         endif
  762.  
  763.         ; 3C905B (NIC) ******************************************************
  764.         ifstr(i) $(Value_DeviceID) == "9055"
  765.             ifstr(i) $(Value_SubSystemID) == "9055"
  766.                 ifstr(i) $(Value_SubVendorID) == "10B7"
  767.  
  768.                     ; Only in this circumstance is it a 3Com NIC
  769.                     ; Vendor and SubVendor ID = 10B7 so it's not a LOM
  770.                     ; SubSystem ID  IS a duplicate of Device ID
  771.  
  772.                     set DeviceID = 36949NIC
  773.                 endif
  774.             endif
  775.         endif
  776.  
  777.         ; 3C918 (LOM NIC) ****************************************************
  778.         ifstr(i) $(Value_DeviceID) == "9055"
  779.             
  780.             ; *** The DeviceID is 9055 ***
  781.             ; *** The Vendor ID is 10B7 (3Com) but the SubVendorID IS NOT ***
  782.             ; *** You're in an OEM situation.  
  783.             ; *** SubSystemID is a don't care value.  OEMs can assign this to ANYTHING ***
  784.  
  785.             ifstr(i) $(Value_SubVendorID) != "10B7"
  786.                 set DeviceID = 36949CatchAll
  787.             endif
  788.  
  789.         endif
  790.  
  791.  
  792.         endif
  793.  
  794.  
  795.  
  796.     CloseRegKey $(PCI_DATA_KEY)
  797.     
  798.  
  799.          Debug-Output "$(InfFile) : DetectedBusNumber = $(DetectedBusNum)"
  800.          Debug-Output "$(InfFile) : DetectedSlotNum = $(DetectedSlotNum)"
  801.  
  802.         ;**************** add this because of 2 Service names**************
  803.         set BoomCard = FALSE     
  804.         ifstr(i) $(DeviceID) == "36944"
  805.             set BoomCard = TRUE
  806.         else-ifstr(i) $(DeviceID) == "36945"
  807.             set BoomCard = TRUE
  808.         else-ifstr(i) $(DeviceID) == "36864"
  809.             set BoomCard = TRUE
  810.         else-ifstr(i) $(DeviceID) == "36865"
  811.             set BoomCard = TRUE
  812.         endif
  813.  
  814.         ifstr(i) $(BoomCard) == TRUE
  815.             Shell $(UtilityInf), IsNetCardAlreadyInstalled, $(DetectedBusNum), +
  816.             $(DetectedSlotNum), $(ProdHW$(DeviceID)Desc), "El90xnd"
  817.  
  818.             ifstr(i) $($R1) != "YES" 
  819.                 goto AddToNotList
  820.             else
  821.                 goto endchecking
  822.             endif
  823.  
  824.         ;we don't have to check old names for Boomerang because we don't allow update on Boomerang
  825.         ;Update only allowed if Boom card has used new service name El90xnd.
  826.         ;Ed5.0 and anything before that didn't use service name El90xnd.
  827.  
  828.         else ; 90xBC CARD
  829.             Shell $(UtilityInf), IsNetCardAlreadyInstalled, $(DetectedBusNum), +
  830.             $(DetectedSlotNum), $(ProdHW$(DeviceID)Desc), "El90x"
  831.  
  832.             ;**** DO THIS BECAUSE WE NOW USE NEW NAMES FOR OUR CARDS, CHECK OLD NAME
  833.             ifstr(i) $($R1) != "YES"         ;not installed yet, not sure, check oldnames
  834.                 Shell $(UtilityInf), IsNetCardAlreadyInstalled, $(DetectedBusNum), +
  835.                 $(DetectedSlotNum), $(OLDProdHW$(DeviceID)Desc), "El90x"
  836.  
  837.                 ifstr(i) $($R1) != "YES"     ;not installed yet, still not sure because we changed desc twice before
  838.                     Shell $(UtilityInf), IsNetCardAlreadyInstalled, $(DetectedBusNum), +
  839.                     $(DetectedSlotNum), $(ED50HW$(DeviceID)Desc), "El90x"
  840.  
  841.                     ifstr(i) $($R1) != "YES" ;not installed yet, sure by now
  842.                         goto AddToNotList
  843.                     else                     ;already installed with old name on ED5.0
  844.                         goto endchecking
  845.                     endif  
  846.                               
  847.                 else                         ;already installed with old name on ED4.0 or before that
  848.                     goto endchecking
  849.                 endif
  850.             else                 ;already installed with current name on ECD5.1
  851.                 goto endchecking                       
  852.             endif
  853.         endif 
  854.  
  855.  
  856. AddToNotList=+
  857.     ifint $($ShellCode) != $(!SHELL_CODE_OK)
  858.         goto ShellCodeError
  859.     endif
  860.  
  861.     ifstr $($R0) != "NO_ERROR"
  862.         set Error = $($R0)
  863.         goto fatal
  864.     endif
  865.  
  866.     ;ifstr(i) $(ToInstallList) == {}     ; COMMENT THIS OUT TO INSTALL MULTIPLE NIC at a time
  867.         ifstr(i) $($R1) != "YES"
  868.             set ToInstallList = >($(ToInstallList), $($))
  869.         endif 
  870.     ;endif
  871.  
  872.  
  873. endchecking =+
  874.  
  875.     endif 
  876.  
  877. EndForListDo
  878.  
  879.  
  880.  
  881.  
  882.  ifstr(i) $(ToInstallList) == {}
  883.      set Error = $(CANNOT_FIND_ANY_UNINSTALLED_CARD)
  884.      set CommonStatus = USER_CANCEL
  885.      set from = end
  886.      goto nonfatal
  887.  endif
  888.  
  889.  
  890.  
  891.  ForListDo $(ToInstallList)
  892.     set DetectedBusNum = *($($),1)
  893.     set DetectedSlotNum = *($($),2)
  894.     set DeviceID = *($($),3)
  895.     set BoomDetected = FALSE
  896.     set NonBoomDetected = FALSE
  897.  
  898.  
  899.         ; 1.) Call Executable to populate the reg key "SOFTWARE\3Com\PCI_DATA" with the PCI data the current instance of the NIC
  900.         RunProgram ExitCode  "" "" $(SrcDir)PCI_DATA.EXE /$(DetectedBusNum) /$(DetectedSlotNum) 
  901.  
  902.  
  903.         ; 2.) Check open key for the data of interest. *** DeviceID, SubSystemID, SubVendorID, and VendorID are present
  904.         
  905.         OpenRegKey $(!REG_H_LOCAL) "" "SOFTWARE\3Com\PCI_DATA" $(!REG_KEY_ALL_ACCESS) PCI_DATA_KEY 
  906.  
  907.         GetRegValue $(PCI_DATA_KEY) "DeviceID" Array_DeviceID
  908.         GetRegValue $(PCI_DATA_KEY) "VendorID" Array_VendorID
  909.         GetRegValue $(PCI_DATA_KEY) "SubSystemID" Array_SubSystemID
  910.         GetRegValue $(PCI_DATA_KEY) "SubVendorID" Array_SubVendorID
  911.  
  912.         Set Value_DeviceID     = *($(Array_DeviceID),4)
  913.         Set Value_VendorID     = *($(Array_VendorID),4)
  914.         Set Value_SubSystemID     = *($(Array_SubSystemID),4)
  915.         Set Value_SubVendorID     = *($(Array_SubVendorID),4)
  916.  
  917.         ;shell "subroutn.inf" SetupMessage $(!STF_LANGUAGE) "NONFATAL" "The detected DeviceID is ("$(Value_DeviceID)")"
  918.         ;shell "subroutn.inf" SetupMessage $(!STF_LANGUAGE) "NONFATAL" "The detected VendorID is ("$(Value_VendorID)")"
  919.         ;shell "subroutn.inf" SetupMessage $(!STF_LANGUAGE) "NONFATAL" "The detected SubSystemID is ("$(Value_SubSystemID)")"
  920.         ;shell "subroutn.inf" SetupMessage $(!STF_LANGUAGE) "NONFATAL" "The detected SubVendorID is ("$(Value_SubVendorID)")"
  921.  
  922.         ; 3.)    Stepthrough logic to determine card type
  923.  
  924.  
  925.         ; 3Com Product
  926.         ifstr(i) $(Value_VendorID) == "10B7"
  927.  
  928.  
  929.         ; 3C905C NIC / Mini PCI NIC
  930.  
  931.         ; 3C905C (NIC) ********************************************************
  932.         ifstr(i) $(Value_DeviceID) == "9200"
  933.             ifstr(i) $(Value_SubSystemID) == "1000"
  934.                 ifstr(i) $(Value_SubVendorID) == "10B7"
  935.  
  936.                     ; Only in this circumstance is it a 3Com NIC
  937.                     ; Vendor and SubVendor ID = 10B7 so it's not a LOM
  938.                     ; SubSystem ID  IS NOT(!)  a duplicate of Device ID
  939.  
  940.                     set DeviceID = 37376NIC
  941.                 endif
  942.             endif
  943.         endif
  944.  
  945.         ; 3C905C (Mini PCI NIC) ***********************************************
  946.         ifstr(i) $(Value_DeviceID) == "9200"
  947.             ifstr(i) $(Value_SubSystemID) == "7000"
  948.  
  949.                 ifstr(i) $(Value_SubVendorID) == "10B7"
  950.  
  951.                     ; Only in this circumstance is it a 3Com NIC
  952.                     ; Vendor and SubVendor ID = 10B7 so it's not a LOM
  953.                     ; SubSystem ID  IS NOT(!)  a duplicate of Device ID
  954.  
  955.                     set DeviceID = 37376MiniPCI
  956.                 endif
  957.             endif
  958.         endif
  959.  
  960.  
  961.         ; 3C905 Catch All *****************************************************
  962.         ifstr(i) $(Value_DeviceID) == "9200"
  963.             
  964.             ; *** The DeviceID is 9200 ***
  965.             ; *** The Vendor ID is 10B7 (3Com) but the SubVendorID IS NOT ***
  966.             ; *** You're in an OEM situation.  Break out of this iteration fo the Loop ***
  967.             ; *** SubSystemID is a don't care value.  OEMs can assign this to ANYTHING ***
  968.  
  969.             ifstr(i) $(Value_SubVendorID) != "10B7"
  970.                 set DeviceID = 37376CatchAll
  971.             endif
  972.  
  973.         endif
  974.  
  975.         ; 3C905B (NIC) ******************************************************
  976.         ifstr(i) $(Value_DeviceID) == "9055"
  977.             ifstr(i) $(Value_SubSystemID) == "9055"
  978.                 ifstr(i) $(Value_SubVendorID) == "10B7"
  979.  
  980.                     ; Only in this circumstance is it a 3Com NIC
  981.                     ; Vendor and SubVendor ID = 10B7 so it's not a LOM
  982.                     ; SubSystem ID  IS a duplicate of Device ID
  983.  
  984.                     set DeviceID = 36949NIC
  985.                 endif
  986.             endif
  987.         endif
  988.  
  989.         ; 3C918 Catch All ****************************************************
  990.         ifstr(i) $(Value_DeviceID) == "9055"
  991.             
  992.             ; *** The DeviceID is 9055 ***
  993.             ; *** The Vendor ID is 10B7 (3Com) but the SubVendorID IS NOT ***
  994.             ; *** You're in an OEM situation.  
  995.             ; *** SubSystemID is a don't care value.  OEMs can assign this to ANYTHING ***
  996.  
  997.             ifstr(i) $(Value_SubVendorID) != "10B7"
  998.                 set DeviceID = 36949CatchAll
  999.             endif
  1000.  
  1001.         endif
  1002.  
  1003.     
  1004.     endif
  1005.  
  1006.  
  1007.  
  1008.     CloseRegKey $(PCI_DATA_KEY)
  1009.  
  1010.  
  1011.  
  1012.  
  1013.     ;********************************************************************
  1014.     ; Check if 90XBC or Boomerang
  1015.     ;********************************************************************
  1016.     set BoomCard = FALSE 
  1017.     
  1018.     ifstr(i) $(DeviceID) == "36944"
  1019.         set BoomCard = TRUE
  1020.     else-ifstr(i) $(DeviceID) == "36945"
  1021.         set BoomCard = TRUE
  1022.     else-ifstr(i) $(DeviceID) == "36864"
  1023.         set BoomCard = TRUE
  1024.     else-ifstr(i) $(DeviceID) == "36865"
  1025.         set BoomCard = TRUE
  1026.     endif  
  1027.  
  1028.     ifstr(i) $(BoomCard) == TRUE 
  1029.     set CorrectProdHWName = $(NDProdHWName)
  1030.     set CorrectProdSWName = $(NDProdSWName)
  1031.     set CorrectNetRuleSWType = $(NDNetRuleSWType)
  1032.     set CorrectNetRuleSWBindForm = $(NDNetRuleSWBindForm)
  1033.     set CorrectNetRuleSWClass = $(NDNetRuleSWClass)
  1034.     set CorrectNetRuleSWBindable = $(NDNetRuleSWBindable)
  1035.     set CorrectNetRuleHWBindForm = $(NDNetRuleHWBindForm)
  1036.     set CorrectNetRuleHWType = $(NDNetRuleHWType)
  1037.     set CorrectNetRuleHWClass = $(NDNetRuleHWClass)
  1038.     set CorrectProdKeyName = $(NDProdKeyName)
  1039.     set CorrectParamKeyName = $(NDParamKeyName)
  1040.     set CorrectProdSWDesc = $(NDProdSWDesc)
  1041.     set CorrectProdSWTitle = $(NDProdSWTitle)
  1042.  
  1043.         ifstr(i) (*($(CurrentVersionValue),4)) == $(NT400VersionConstant) 
  1044.             set CorrectNetEventDLL = $(ND4NDNetEventDLL)
  1045.             set CorrectProdSWImagePath = $(ND4NDProdSWImagePath)
  1046.             set CorrectProdSWUpgradePath = $(ND4NDProdSWUpgradePath)
  1047.         else
  1048.             set CorrectNetEventDLL = $(ND3NDNetEventDLL)
  1049.             set CorrectProdSWImagePath = $(ND3NDProdSWImagePath)
  1050.             set CorrectProdSWUpgradePath = $(ND3NDProdSWUpgradePath)
  1051.         endif
  1052.  
  1053.     else ; 90XBC CARD
  1054.     set CorrectProdSWDesc = $(ProdSWDesc)
  1055.     set CorrectProdSWTitle = $(ProdSWTitle)
  1056.     set CorrectProdHWName = $(ProdHWName)
  1057.     set CorrectProdSWName = $(ProdSWName)
  1058.     set CorrectNetRuleSWType = $(NetRuleSWType)
  1059.     set CorrectNetRuleSWBindForm = $(NetRuleSWBindForm)
  1060.     set CorrectNetRuleSWClass = $(NetRuleSWClass)
  1061.     set CorrectNetRuleSWBindable = $(NetRuleSWBindable)
  1062.     set CorrectNetRuleHWBindForm = $(NetRuleHWBindForm)
  1063.     set CorrectNetRuleHWType = $(NetRuleHWType)
  1064.     set CorrectNetRuleHWClass = $(NetRuleHWClass)
  1065.     set CorrectProdKeyName = $(ProdKeyName)
  1066.     set CorrectParamKeyName = $(ParamKeyName)
  1067.  
  1068.         ifstr(i) (*($(CurrentVersionValue),4)) == $(NT400VersionConstant) 
  1069.             set CorrectNetEventDLL = $(ND4BCNetEventDLL)
  1070.             set CorrectProdSWImagePath = $(ND4BCProdSWImagePath)
  1071.             set CorrectProdSWUpgradePath = $(ND4BCProdSWUpgradePath)
  1072.         else
  1073.             set CorrectNetEventDLL = $(ND3BCNetEventDLL)
  1074.             set CorrectProdSWImagePath = $(ND3BCProdSWImagePath)
  1075.             set CorrectProdSWUpgradePath = $(ND3BCProdSWUpgradePath)
  1076.         endif
  1077.  
  1078.     endif ; END CHECK CARD
  1079.  
  1080.  
  1081.  
  1082.     ;DEBUG:
  1083.     ;    ifstr(i) $(BoomCard) == TRUE 
  1084.     ;     Set DlgText = "bOOM CARD"
  1085.     ;        else
  1086.     ;         Set DlgText = "90xbc CARD"
  1087.     ;    endif
  1088.     ;    Shell "Subroutn.Inf" SetupMessage $(!STF_LANGUAGE) "WARNING" $(DlgText)
  1089.     ;    Set DlgText = "firstDB "$(CorrectProdHWName)" "$(CorrectProdSWName)
  1090.     ;    Shell "Subroutn.Inf" SetupMessage $(!STF_LANGUAGE) "WARNING" $(DlgText)
  1091.     ;    Set DlgText = $(CorrectProdKeyName)" "$(CorrectProdSWImagePath)
  1092.     ;    Shell "Subroutn.Inf" SetupMessage $(!STF_LANGUAGE) "WARNING" $(DlgText)
  1093.     ;    Set DlgText = "Netevent "$(CorrectNetEventDLL)
  1094.     ;    Shell "Subroutn.Inf" SetupMessage $(!STF_LANGUAGE) "WARNING" $(DlgText)
  1095.     ;END DEBUG
  1096.  
  1097.     OpenRegKey $(!REG_H_LOCAL) "" $(!NTN_ServiceBase)"\"$(CorrectProdHWName) $(!REG_KEY_READ) KeyNt
  1098.     CloseRegKey $(KeyNt)
  1099.  
  1100.     Ifstr(i) $(KeyNt) == "" ; Begin check Key=null
  1101.  
  1102.         Debug-Output "$(InfFile) : AddSoftwareComponent"
  1103.         Shell $(UtilityInf), AddSoftwareComponent, $(Manufacturer), +
  1104.         $(CorrectProdSWName), +
  1105.         $(CorrectProdSWName), +
  1106.         $(CorrectProdSWTitle), $(STF_CONTEXTINFNAME), +
  1107.         $(CorrectProdSWImagePath), "kernel", "NDIS", {}, "",+
  1108.         $(CorrectNetEventDLL)    
  1109.          Set OEM_ABANDON_SOFTWARE = TRUE
  1110.  
  1111.         ifint $($ShellCode) != $(!SHELL_CODE_OK)
  1112.             goto ShellCodeError
  1113.         endif
  1114.  
  1115.         set RegistryErrorIndex = $($R0)
  1116.         Ifstr(i) $(RegistryErrorIndex) != "NO_ERROR"
  1117.             EndWait
  1118.             CloseRegKey $($R1)
  1119.             CloseRegKey $($R2)
  1120.             CloseRegKey $($R3)
  1121.             CloseRegKey $($R4)
  1122.             CloseRegKey $($R5)
  1123.             goto fatalregistry
  1124.         endif
  1125.  
  1126.         ;DEBUG:
  1127.         ;    ifstr(i) $(BoomCard) == TRUE 
  1128.         ;     Set DlgText = "bOOM CARD"
  1129.         ;        else
  1130.         ;         Set DlgText = "90xbc CARD"
  1131.         ;    endif
  1132.         ;    Shell "Done Add Software comp to get keyhandle"
  1133.         ;    Set DlgText = "firstDB "$(CorrectProdHWName)" "$(CorrectProdSWName)    
  1134.         ;END DEBUG    
  1135.  
  1136.         Set SoftProductKey = $($R1)
  1137.         Set SoftNetRuleKey = $($R2)
  1138.         Set SoftServiceKey = $($R3)
  1139.         Set SoftParameterKey = $($R4)
  1140.         Set SoftLinkageKey = $($R5)
  1141.         set NewValueList = {{SoftwareType,$(NoTitle),$(!REG_VT_SZ),$(SWType)},+
  1142.         
  1143.         {MajorVersion,$(NoTitle),$(!REG_VT_DWORD),$(ProdMajorVer)},+
  1144.         {MinorVersion,$(NoTitle),$(!REG_VT_DWORD),$(ProdMinorVer)},+
  1145.         {Title,$(NoTitle),$(!REG_VT_SZ),$(CorrectProdSWTitle)},+
  1146.         {Description,$(NoTitle),$(!REG_VT_SZ),$(CorrectProdSWDesc)},+
  1147.         {Review,$(NoTitle),$(!REG_VT_DWORD),$(ProdReview)},+
  1148.         {ServiceName,$(NoTitle),$(!REG_VT_SZ),$(CorrectProdSWName)},+
  1149.         {InstallDate,$(NoTitle),$(!REG_VT_DWORD),*($(Now),1)},+
  1150.         {EDVersion,$(NoTitle),$(!REG_VT_SZ),$(EtherDiskVersion)}}
  1151.         Shell $(UtilityInf), AddValueList, $(SoftProductKey), $(NewValueList)
  1152.         
  1153.         ifint $($ShellCode) != $(!SHELL_CODE_OK)
  1154.             goto ShellCodeError
  1155.         endif
  1156.  
  1157.         set RegistryErrorIndex = $($R0)
  1158.         Ifstr(i) $(RegistryErrorIndex) != "NO_ERROR"
  1159.             EndWait
  1160.             CloseRegKey $(SoftProductKey)
  1161.             CloseRegKey $(SoftNetRuleKey)
  1162.             CloseRegKey $(SoftServiceKey)
  1163.             CloseRegKey $(SoftParameterKey)
  1164.             CloseRegKey $(SoftLinkageKey)
  1165.             goto fatalregistry
  1166.         endif
  1167.  
  1168.         set NewValueList = {{type,$(NoTitle),$(!REG_VT_SZ),$(CorrectNetRuleSWType)},+
  1169.         
  1170.         {use,$(NoTitle),$(!REG_VT_SZ),$(NetRuleSWUse)}, +
  1171.         {bindform,$(NoTitle),$(!REG_VT_SZ),$(CorrectNetRuleSWBindForm)}, +
  1172.         {class,$(NoTitle),$(!REG_VT_MULTI_SZ),$(CorrectNetRuleSWClass)}, +
  1173.         {bindable,$(NoTitle),$(!REG_VT_MULTI_SZ),$(CorrectNetRuleSWBindable)}, +
  1174.         {InfOption,$(NoTitle),$(!REG_VT_SZ),$(Option)}}
  1175.         Shell $(UtilityInf), AddValueList, $(SoftNetRuleKey), $(NewValueList)
  1176.         
  1177.         ifint $($ShellCode) != $(!SHELL_CODE_OK)
  1178.             goto ShellCodeError
  1179.         endif
  1180.  
  1181.         set RegistryErrorIndex = $($R0)
  1182.         Ifstr(i) $(RegistryErrorIndex) != "NO_ERROR"
  1183.             EndWait
  1184.             CloseRegKey $(SoftProductKey)
  1185.             CloseRegKey $(SoftNetRuleKey)
  1186.             CloseRegKey $(SoftServiceKey)
  1187.             CloseRegKey $(SoftParameterKey)
  1188.             CloseRegKey $(SoftLinkageKey)
  1189.             goto fatalregistry
  1190.         endif
  1191.  
  1192.         ;********** Add parameter for driver *************************
  1193.  
  1194.         set WakeOnLan = YES
  1195.         set WakeOnLink = NO 
  1196.         set ValueEnable = ENABLE 
  1197.  
  1198.         ifstr(i) $(BoomCard) == TRUE
  1199.             Set NewValueList = {{WakeOnMagic,$(NoTitle),$(!REG_VT_SZ),$(WakeOnLan)},+
  1200.             {WakeOnLink,$(NoTitle),$(!REG_VT_SZ),$(WakeOnLink)},+
  1201.             {FLOWCONTROL,$(NoTitle),$(!REG_VT_SZ),$(ValueEnable)}}
  1202.  
  1203.         else
  1204.             Set NewValueList = {{RWUMAGIC,$(NoTitle),$(!REG_VT_SZ),$(ValueEnable)},+
  1205.             {FLOWCONTROL,$(NoTitle),$(!REG_VT_SZ),$(ValueEnable)}}
  1206.         endif
  1207.  
  1208.         Shell $(UtilityInf), AddValueList, $(SoftParameterKey), $(NewValueList)
  1209.         CreateRegKey $(SoftParameterKey) {"3CDefault" , 0, GenericClass} "" $(!REG_KEY_ALL_ACCESS) +
  1210.          "" KeyNt2 
  1211.  
  1212.         ;;;
  1213.         Set ThisValueList = {RWUMAGIC,$(NoTitle),$(!REG_VT_SZ),$(ValueEnable)}
  1214.  
  1215.  
  1216.         OpenRegKey $(!REG_H_LOCAL) "" "SOFTWARE\3Com\"$(NDProdSWName) $(!REG_KEY_ALL_ACCESS) NDKeyNt 
  1217.         ifstr $(KeyNt2) != ""    
  1218.             SetRegValue $(KeyNt2 ) $("ThisValueList") 
  1219.             CloseRegKey $(KeyNt2 )
  1220.         endif
  1221.         ;;;
  1222.  
  1223.         ifint $($ShellCode) != $(!SHELL_CODE_OK)
  1224.             goto ShellCodeError
  1225.         endif
  1226.  
  1227.         CloseRegKey $(SoftProductKey)
  1228.         CloseRegKey $(SoftNetRuleKey)
  1229.         CloseRegKey $(SoftServiceKey)
  1230.         CloseRegKey $(SoftParameterKey)
  1231.         CloseRegKey $(SoftLinkageKey)
  1232.  
  1233.         Ifstr(i) $(RegistryErrorIndex) != "NO_ERROR"
  1234.             EndWait
  1235.             goto fatalregistry
  1236.         endif
  1237.     
  1238.     ;*************************************************************
  1239.     
  1240.     endif ; end check Key=null
  1241.  
  1242.     Debug-Output "$(InfFile) : DetectedBusNumber = $(DetectedBusNum)"
  1243.     Debug-Output "$(InfFile) : DetectedSlotNum = $(DetectedSlotNum)"
  1244.     Debug-Output "$(InfFile) : Installing Card at $(DetectedBusNum):$(DetectedSlotNum)!"
  1245.  
  1246.     Shell $(UtilityInf), AddHardwareComponent, $(CorrectProdHWName),$(STF_CONTEXTINFNAME),$(CorrectProdKeyName)
  1247.     ifint $($R4) != -1
  1248.         Set OEM_ABANDON_OPTIONS = >($(OEM_ABANDON_OPTIONS), $(!NTN_SoftwareBase)"\Microsoft\Windows NT\CurrentVersion\NetworkCards\"$($R4))
  1249.     endif
  1250.  
  1251.     ifint $($ShellCode) != $(!SHELL_CODE_OK)
  1252.         goto ShellCodeError
  1253.     endif
  1254.  
  1255.     set RegistryErrorIndex = $($R0)
  1256.     Ifstr(i) $(RegistryErrorIndex) != "NO_ERROR"
  1257.         EndWait
  1258.         CloseRegKey $($R1)
  1259.         CloseRegKey $($R2)
  1260.         CloseRegKey $($R3)
  1261.         goto fatalregistry
  1262.     endif
  1263.  
  1264.  
  1265.     Set HardNetCardKey = $($R1)
  1266.     Set HardNetRuleKey = $($R2)
  1267.     Set HardParameterKey = $($R3)
  1268.     set AdapterNumber = $($R4)
  1269.     set NewValueList = {{Manufacturer,$(NoTitle),$(!REG_VT_SZ),$(Manufacturer)},+
  1270.     {Title,$(NoTitle),$(!REG_VT_SZ),"["$($R4)"] "$(ProdHW$(DeviceID)Title)},+
  1271.     {Description,$(NoTitle),$(!REG_VT_SZ),$(ProdHW$(DeviceID)Desc)},+
  1272.     {ProductName,$(NoTitle),$(!REG_VT_SZ),$(CorrectProdHWName)},+
  1273.     {ServiceName,$(NoTitle),$(!REG_VT_SZ),$($R5)},+
  1274.     {InstallDate,$(NoTitle),$(!REG_VT_DWORD),*($(Now),1)},+
  1275.     {EDVersion,$(NoTitle),$(!REG_VT_SZ),$(EtherDiskVersion)},+
  1276.     }
  1277.  
  1278.     ; Workaround: Sometimes AddHardwareComponent can't return correct handle for HardNetCardKey
  1279.     ; We have to manually open the key using adapter number returned from AddHardwareComponent    
  1280.     ; might have to do the same for HardParameterKey
  1281.  
  1282.         OpenRegKey $(!REG_H_LOCAL) "" $(NetworkCardsKey)$($R4) $(!REG_KEY_SET_VALUE) HardNetCardKey
  1283.  
  1284.     ; end workaround
  1285.  
  1286.     Shell $(UtilityInf), AddValueList, $(HardNetCardKey), $(NewValueList)
  1287.     ifint $($ShellCode) != $(!SHELL_CODE_OK)
  1288.         goto ShellCodeError
  1289.     endif
  1290.  
  1291.     ;set RegistryErrorIndex = $($R0)
  1292.     ;Ifstr(i) $(RegistryErrorIndex) != "NO_ERROR"
  1293.     ;EndWait
  1294.     ;goto fatalregistry
  1295.     ;endif
  1296.  
  1297.     set BusTypeNum = 5 
  1298.     ifstr(i) $(DeviceID) == "36944"
  1299.         set CardType = 0
  1300.     else-ifstr(i) $(DeviceID) == "36945"
  1301.         set CardType = 0
  1302.     else-ifstr(i) $(DeviceID) == "36949"
  1303.         set CardType = 0
  1304.     else
  1305.         set CardType = 2
  1306.     endif 
  1307.  
  1308.     ifint $(NTDetected) == $(TRUE)
  1309.         set BusNumber = $(DetectedBusNum)
  1310.         set SlotNum = $(DetectedSlotNum) 
  1311.         set BusInterfaceType = $(BusTypeNum)
  1312.         set WakeOnLan = YES
  1313.         set WakeOnLink = NO
  1314.         set FlowControl = ENABLE
  1315.  
  1316. ;
  1317.         Debug-Output "$(InfFile) : Set HardwareParameterKey = $(NewValueList)"
  1318.  
  1319.          Set NewValueList = {+
  1320.           {BusNumber,$(NoTitle),$(!REG_VT_DWORD),$(BusNumber)},+
  1321.           {Slot,$(NoTitle),$(!REG_VT_DWORD),$(SlotNum)},+
  1322.           {FlowControl,$(NoTitle),$(!REG_VT_SZ),$(FlowControl)},+
  1323.          {DownPollRate,$(NoTitle),$(!REG_VT_SZ),"8"},+ 
  1324.           {NDIS_VERSION,$(NoTitle),$(!REG_VT_SZ),"NDIS 4"},+
  1325.          {8021pOffload,$(NoTitle),$(!REG_VT_SZ),"DISABLE"},+
  1326.          {RxChecksum,$(NoTitle),$(!REG_VT_SZ),"DISABLE"},+
  1327.          {TxChecksum,$(NoTitle),$(!REG_VT_SZ),"DISABLE"},+
  1328.          {RWUMAGIC,$(NoTitle),$(!REG_VT_SZ),"ENABLE"},+
  1329.          {InitDelayCount,$(NoTitle),$(!REG_VT_SZ),"0"},+
  1330.          {DoubleNego,$(NoTitle),$(!REG_VT_SZ),"ENABLE"},+
  1331.          {PHYCompat,$(NoTitle),$(!REG_VT_SZ),"ENABLE"},+
  1332.          {LnkChk,$(NoTitle),$(!REG_VT_SZ),"DISABLE"},+
  1333.          {RWUPING,$(NoTitle),$(!REG_VT_SZ),"DISABLE"},+
  1334.          {RWUARP,$(NoTitle),$(!REG_VT_SZ),"DISABLE"},+
  1335.         }
  1336.  
  1337.         Debug-Output "$(InfFile) : Set HardwareParameterKey = $(NewValueList)"
  1338.         Shell $(UtilityInf), AddValueList, $(HardParameterKey), $(NewValueList)
  1339.  
  1340.         ifint $($ShellCode) != $(!SHELL_CODE_OK)
  1341.           goto ShellCodeError
  1342.         endif
  1343.  
  1344. OpenRegKey $(!REG_H_LOCAL) "" "SOFTWARE" $(!REG_KEY_WRITE) SOFTKEY
  1345. OpenRegKey $(SOFTKEY) "" "3Com" $(!REG_KEY_WRITE) COMKEY
  1346.  
  1347.  
  1348. ; If the 3Com Key doesn't exists, create one.
  1349. ifstr $(COMKEY) == ""
  1350.     CreateRegKey $(SOFTKEY) {"3Com", 0, GenericClass} "" $(!REG_KEY_WRITE) "" COMKEY
  1351. endif
  1352.  
  1353. OpenRegKey $(!REG_H_LOCAL) "" "SYSTEM\CurrentControlSet\Services" $(!REG_KEY_ALL_ACCESS) ServicesKey
  1354. Ifstr(i) $(ServicesKey) != "" ; key exists
  1355.  
  1356. EnumRegKey $(ServicesKey) DriverList
  1357.  
  1358. ForListDo $(DriverList)
  1359.  
  1360.  
  1361.  
  1362.  
  1363.  
  1364. ; *** Check whether any EL99X driver instances are present. This is a NIC project specific check!
  1365. set foundPythonInstance = FALSE
  1366. set Driver = *($($), 1)
  1367.  
  1368.  
  1369. Split-String "$(Driver)" "X" DriverTokens
  1370.  
  1371. set DriverName = *($(DriverTokens), 1)
  1372. ifstr(i) $(Driver) != "EL90X"
  1373.     ifstr(i) $(DriverName) == "El90"
  1374.     ; We have found a 3Com client-related key
  1375.         set found3ComClientInstance = TRUE
  1376.     endif
  1377. endif
  1378.  
  1379.  
  1380. Split-String "$(Driver)" "x" DriverTokens
  1381.  
  1382. set DriverName = *($(DriverTokens), 1)
  1383. ifstr(i) $(Driver) != "EL90x"
  1384.     ifstr(i) $(DriverName) == "El90"
  1385.     ; We have found a 3Com client-related key
  1386.         set found3ComClientInstance = TRUE
  1387.     endif
  1388. endif
  1389.  
  1390.  
  1391. ; *** Create a key with a cooresponding service name under the SOFTWARE\3Com key.
  1392.  
  1393. Ifstr(i) $(found3ComClientInstance) == "TRUE"
  1394.  
  1395. ;shell "subroutn.inf" SetupMessage $(!STF_LANGUAGE) "NONFATAL" "Found Typhoon Driver instance ("$(DriverName)")"
  1396. ;shell "subroutn.inf" SetupMessage $(!STF_LANGUAGE) "NONFATAL" "Driver instance name is  ("$(Driver)")"
  1397.  
  1398. CreateRegKey $(COMKEY) {$(Driver), 0, GenericClass} "" $(!REG_KEY_WRITE) "" THISNIC
  1399. endif
  1400.  
  1401.  
  1402.  
  1403.  
  1404.  
  1405. ; *************************************************************************************************
  1406. ; *************************************************************************************************
  1407. ;                        NT4_CFG
  1408. ;
  1409. ;                          INSTRUCTIONS
  1410. ;
  1411. ;                    HKEY_LOCAL_MACHINE\SOFTWARE\3Com\B A S E K E Y 
  1412. ;
  1413. ;Under the BASEKEY we'll have ALL of the NIC parameters the driver supports under the Windows NT 4
  1414. ;operating system.
  1415. ;
  1416. ;e.g.
  1417. ;
  1418. ;HKEY_LOCAL_MACHINE\SOFTWARE\3Com\EL99X\F L O W C O N T R O L 
  1419. ;
  1420. ;Where EL99x is the BASEKEY.  Under the parameter you'll find a subkey that determines the type of information
  1421. ;tobe/nottobe displayed.  Legal subkey types are "enum","single value","protected", and "range"
  1422. ;
  1423. ;enum:        Every Value under this key will be displayed in a listbox. User selections and changes
  1424. ;        will be based upon those value/data combinations exposed under the enum key.
  1425. ;
  1426. ;single value:    1 value is expected. The 1st value present that isn't "Default" will be shown. This
  1427. ;        value can be changed at the user's request.
  1428. ;
  1429. ;protected:    1 value is expected. Said value will be shown but can not be changed by the user.
  1430. ;
  1431. ;range:        Programmatically a value will be shown. It will be incremented/decremented based
  1432. ;        on Windows 2000 type /enum data exposed under this key
  1433. ;
  1434. ; *************************************************************************************************
  1435. ; *************************************************************************************************
  1436.  
  1437.  
  1438. Ifstr(i) $(found3ComClientInstance) == "TRUE"
  1439.  
  1440. ;BEGIN PARAMETERS LIST
  1441. ; *************************************************************************************************
  1442.  
  1443. ; *** 8021pOffload (DATATYPE ENUM) ***
  1444.  
  1445. CreateRegKey $(THISNIC) {"8021pOffload", 0, GenericClass} "" $(!REG_KEY_WRITE) "" KEY_8021pOffload
  1446. SetRegValue $(KEY_8021pOffload),{FriendlyName,$(NoTitle),$(!REG_VT_SZ), "802.1p Support" }
  1447.  
  1448. CreateRegKey $(KEY_8021pOffload) {"enum", 0, GenericClass} "" $(!REG_KEY_WRITE) "" KEY_ENUM
  1449.  
  1450. Set ThisValueList =     {{$(enable_value),$(NoTitle),$(!REG_VT_SZ),$(enable)},+
  1451.                {$(disable_value),$(NoTitle),$(!REG_VT_SZ),$(disable)},+
  1452.             }
  1453.  
  1454. Shell $(UtilityInf), AddValueList, $(KEY_ENUM), $(ThisValueList)
  1455.  
  1456. ifint $($ShellCode) != $(!SHELL_CODE_OK)
  1457.     goto ShellCodeError
  1458. endif
  1459.  
  1460. ; *************************************************************************************************
  1461.  
  1462. ; *** DownPollRate (DATATYPE enum) ***
  1463.  
  1464. CreateRegKey $(THISNIC) {"DownPollRate", 0, GenericClass} "" $(!REG_KEY_WRITE) "" KEY_DownPollRate
  1465. SetRegValue $(KEY_DownPollRate),{FriendlyName,$(NoTitle),$(!REG_VT_SZ), "Down Poll Rate"}
  1466.  
  1467. CreateRegKey $(KEY_DownPollRate) {"enum", 0, GenericClass} "" $(!REG_KEY_WRITE) "" KEY_ENUM
  1468.  
  1469. Set ThisValueList =     {{8,$(NoTitle),$(!REG_VT_SZ),"8"},+
  1470.                {64,$(NoTitle),$(!REG_VT_SZ),"64"},+
  1471.             }
  1472.  
  1473. Shell $(UtilityInf), AddValueList, $(KEY_ENUM), $(ThisValueList)
  1474.  
  1475. ifint $($ShellCode) != $(!SHELL_CODE_OK)
  1476.     goto ShellCodeError
  1477. endif
  1478.  
  1479. ; *************************************************************************************************
  1480.  
  1481. ; *** FlowControl (DATATYPE ENUM) ***
  1482.  
  1483. CreateRegKey $(THISNIC) {"FlowControl", 0, GenericClass} "" $(!REG_KEY_WRITE) "" KEY_FlowControl
  1484. SetRegValue $(KEY_FlowControl),{FriendlyName,$(NoTitle),$(!REG_VT_SZ), "Flow Control" }
  1485.  
  1486. CreateRegKey $(KEY_FlowControl) {"enum", 0, GenericClass} "" $(!REG_KEY_WRITE) "" KEY_ENUM
  1487.  
  1488. Set ThisValueList =     {{$(enable_value),$(NoTitle),$(!REG_VT_SZ),$(enable)},+
  1489.                {$(disable_value),$(NoTitle),$(!REG_VT_SZ),$(disable)},+
  1490.             }
  1491.  
  1492. Shell $(UtilityInf), AddValueList, $(KEY_ENUM), $(ThisValueList)
  1493.  
  1494. ifint $($ShellCode) != $(!SHELL_CODE_OK)
  1495.     goto ShellCodeError
  1496. endif
  1497.  
  1498. ; *************************************************************************************************
  1499.  
  1500. ; *** Media (DATATYPE ENUM) ***
  1501.  
  1502. CreateRegKey $(THISNIC) {"media_type", 0, GenericClass} "" $(!REG_KEY_WRITE) "" KEY_XCVR_SELECT
  1503. SetRegValue $(KEY_XCVR_SELECT),{FriendlyName,$(NoTitle),$(!REG_VT_SZ), "Media Type" }
  1504.  
  1505. CreateRegKey $(KEY_XCVR_SELECT) {"enum", 0, GenericClass} "" $(!REG_KEY_WRITE) "" KEY_ENUM
  1506.  
  1507. Set ThisValueList =     {{AUTOSELECT,$(NoTitle),$(!REG_VT_SZ),$(media_auto)},+
  1508.              {10HALF,$(NoTitle),$(!REG_VT_SZ),$(media_10_half)},+
  1509.              {100HALF,$(NoTitle),$(!REG_VT_SZ),$(media_100_half)},+
  1510.              {10FULL,$(NoTitle),$(!REG_VT_SZ),$(media_10_full)},+
  1511.              {100FULL,$(NoTitle),$(!REG_VT_SZ),$(media_100_full)},+
  1512.              {HWDEFAULT,$(NoTitle),$(!REG_VT_SZ),$(media_default)},+
  1513.             }
  1514.  
  1515. Shell $(UtilityInf), AddValueList, $(KEY_ENUM), $(ThisValueList)
  1516.  
  1517. ifint $($ShellCode) != $(!SHELL_CODE_OK)
  1518.     goto ShellCodeError
  1519. endif
  1520.  
  1521. ; *************************************************************************************************
  1522.  
  1523. ; *** RxChecksum ***
  1524.  
  1525. CreateRegKey $(THISNIC) {"RxChecksum", 0, GenericClass} "" $(!REG_KEY_WRITE) "" KEY_RxChecksum
  1526. SetRegValue $(KEY_RxChecksum),{FriendlyName,$(NoTitle),$(!REG_VT_SZ), "Rx Checksum Offload" }
  1527.  
  1528.  
  1529.  
  1530. CreateRegKey $(KEY_RxChecksum) {"enum", 0, GenericClass} "" $(!REG_KEY_WRITE) "" KEY_ENUM
  1531.  
  1532. Set ThisValueList =     {{$(enable_value),$(NoTitle),$(!REG_VT_SZ),$(enable)},+
  1533.                {$(disable_value),$(NoTitle),$(!REG_VT_SZ),$(disable)},+
  1534.             }
  1535.  
  1536. Shell $(UtilityInf), AddValueList, $(KEY_ENUM), $(ThisValueList)
  1537.  
  1538. ifint $($ShellCode) != $(!SHELL_CODE_OK)
  1539.     goto ShellCodeError
  1540. endif
  1541.  
  1542. ; *************************************************************************************************
  1543.  
  1544. ; *** TxChecksum ***
  1545.  
  1546. CreateRegKey $(THISNIC) {"TxChecksum", 0, GenericClass} "" $(!REG_KEY_WRITE) "" KEY_TxChecksum
  1547. SetRegValue $(KEY_TxChecksum),{FriendlyName,$(NoTitle),$(!REG_VT_SZ), "Tx Checksum Offload" }
  1548.  
  1549.  
  1550.  
  1551. CreateRegKey $(KEY_TxChecksum) {"enum", 0, GenericClass} "" $(!REG_KEY_WRITE) "" KEY_ENUM
  1552.  
  1553. Set ThisValueList =     {{$(enable_value),$(NoTitle),$(!REG_VT_SZ),$(enable)},+
  1554.                {$(disable_value),$(NoTitle),$(!REG_VT_SZ),$(disable)},+
  1555.             }
  1556.  
  1557. Shell $(UtilityInf), AddValueList, $(KEY_ENUM), $(ThisValueList)
  1558.  
  1559. ifint $($ShellCode) != $(!SHELL_CODE_OK)
  1560.     goto ShellCodeError
  1561. endif
  1562.  
  1563. ; *************************************************************************************************
  1564.  
  1565. ; *** InitDelayCount (DATATYPE ENUM) ***
  1566.  
  1567. CreateRegKey $(THISNIC) {"InitDelayCount", 0, GenericClass} "" $(!REG_KEY_WRITE) "" KEY_InitDelayCount
  1568.  
  1569. SetRegValue $(KEY_InitDelayCount),{FriendlyName,$(NoTitle),$(!REG_VT_SZ), "InitDelayCount" }
  1570.  
  1571. CreateRegKey $(KEY_InitDelayCount) {"range", 0, GenericClass} "" $(!REG_KEY_WRITE) "" KEY_ENUM
  1572.  
  1573. Set ThisValueList =     {{ParamDesc,$(NoTitle),$(!REG_VT_SZ),"InitDelayCount"},+
  1574.                {Default,$(NoTitle),$(!REG_VT_SZ),"0"},+
  1575.                {type,$(NoTitle),$(!REG_VT_SZ),$(int)},+
  1576.              {min,$(NoTitle),$(!REG_VT_SZ),"0"},+
  1577.              {max,$(NoTitle),$(!REG_VT_SZ),"60"},+
  1578.              {step,$(NoTitle),$(!REG_VT_SZ),"1"},+
  1579.              {base,$(NoTitle),$(!REG_VT_SZ),"10"},+
  1580.             }
  1581.  
  1582. Shell $(UtilityInf), AddValueList, $(KEY_ENUM), $(ThisValueList)
  1583.  
  1584. ifint $($ShellCode) != $(!SHELL_CODE_OK)
  1585.     goto ShellCodeError
  1586. endif
  1587.  
  1588. ; *************************************************************************************************
  1589.  
  1590. ; *** DoubleNego (DATATYPE ENUM) ***
  1591.  
  1592. CreateRegKey $(THISNIC) {"DoubleNego", 0, GenericClass} "" $(!REG_KEY_WRITE) "" KEY_DoubleNego
  1593. SetRegValue $(KEY_DoubleNego),{FriendlyName,$(NoTitle),$(!REG_VT_SZ), "DoubleNego" }
  1594.  
  1595. CreateRegKey $(KEY_DoubleNego) {"enum", 0, GenericClass} "" $(!REG_KEY_WRITE) "" KEY_ENUM
  1596.  
  1597. Set ThisValueList =     {{$(enable_value),$(NoTitle),$(!REG_VT_SZ),$(enable)},+
  1598.                {$(disable_value),$(NoTitle),$(!REG_VT_SZ),$(disable)},+
  1599.             }
  1600.  
  1601. Shell $(UtilityInf), AddValueList, $(KEY_ENUM), $(ThisValueList)
  1602.  
  1603. ifint $($ShellCode) != $(!SHELL_CODE_OK)
  1604.     goto ShellCodeError
  1605. endif
  1606.  
  1607. ; *************************************************************************************************
  1608.  
  1609. ; *** PHYCompat (DATATYPE ENUM) ***
  1610.  
  1611. CreateRegKey $(THISNIC) {"PHYCompat", 0, GenericClass} "" $(!REG_KEY_WRITE) "" KEY_PHYCompat
  1612. SetRegValue $(KEY_PHYCompat),{FriendlyName,$(NoTitle),$(!REG_VT_SZ), "PHYCompat" }
  1613.  
  1614. CreateRegKey $(KEY_PHYCompat) {"enum", 0, GenericClass} "" $(!REG_KEY_WRITE) "" KEY_ENUM
  1615.  
  1616. Set ThisValueList =     {{$(enable_value),$(NoTitle),$(!REG_VT_SZ),$(enable)},+
  1617.                {$(disable_value),$(NoTitle),$(!REG_VT_SZ),$(disable)},+
  1618.             }
  1619.  
  1620. Shell $(UtilityInf), AddValueList, $(KEY_ENUM), $(ThisValueList)
  1621.  
  1622. ifint $($ShellCode) != $(!SHELL_CODE_OK)
  1623.     goto ShellCodeError
  1624. endif
  1625.  
  1626. ; *************************************************************************************************
  1627.  
  1628. ; *** LnkChk (DATATYPE ENUM) ***
  1629.  
  1630. CreateRegKey $(THISNIC) {"LnkChk", 0, GenericClass} "" $(!REG_KEY_WRITE) "" KEY_LnkChk
  1631. SetRegValue $(KEY_LnkChk),{FriendlyName,$(NoTitle),$(!REG_VT_SZ), "LnkChk" }
  1632.  
  1633. CreateRegKey $(KEY_LnkChk) {"enum", 0, GenericClass} "" $(!REG_KEY_WRITE) "" KEY_ENUM
  1634.  
  1635. Set ThisValueList =     {{$(enable_value),$(NoTitle),$(!REG_VT_SZ),$(enable)},+
  1636.                {$(disable_value),$(NoTitle),$(!REG_VT_SZ),$(disable)},+
  1637.             }
  1638.  
  1639. Shell $(UtilityInf), AddValueList, $(KEY_ENUM), $(ThisValueList)
  1640.  
  1641. ifint $($ShellCode) != $(!SHELL_CODE_OK)
  1642.     goto ShellCodeError
  1643. endif
  1644.  
  1645. ; *************************************************************************************************
  1646.  
  1647. ; *** RWUMAGIC (DATATYPE ENUM) ***
  1648.  
  1649. CreateRegKey $(THISNIC) {"RWUMAGIC", 0, GenericClass} "" $(!REG_KEY_WRITE) "" KEY_RWUMAGIC
  1650. SetRegValue $(KEY_RWUMAGIC),{FriendlyName,$(NoTitle),$(!REG_VT_SZ), "RWU Magic Pkt" }
  1651.  
  1652. CreateRegKey $(KEY_RWUMAGIC) {"enum", 0, GenericClass} "" $(!REG_KEY_WRITE) "" KEY_ENUM
  1653.  
  1654. Set ThisValueList =     {{$(enable_value),$(NoTitle),$(!REG_VT_SZ),$(enable)},+
  1655.                {$(disable_value),$(NoTitle),$(!REG_VT_SZ),$(disable)},+
  1656.             }
  1657.  
  1658. Shell $(UtilityInf), AddValueList, $(KEY_ENUM), $(ThisValueList)
  1659.  
  1660. ifint $($ShellCode) != $(!SHELL_CODE_OK)
  1661.     goto ShellCodeError
  1662. endif
  1663.  
  1664. ; *************************************************************************************************
  1665.  
  1666. ; *** RWUPING (DATATYPE ENUM) ***
  1667.  
  1668. CreateRegKey $(THISNIC) {"RWUPING", 0, GenericClass} "" $(!REG_KEY_WRITE) "" KEY_RWUPING
  1669. SetRegValue $(KEY_RWUPING),{FriendlyName,$(NoTitle),$(!REG_VT_SZ), "RWU Ping" }
  1670.  
  1671. CreateRegKey $(KEY_RWUPING) {"enum", 0, GenericClass} "" $(!REG_KEY_WRITE) "" KEY_ENUM
  1672.  
  1673. Set ThisValueList =     {{$(enable_value),$(NoTitle),$(!REG_VT_SZ),$(enable)},+
  1674.                {$(disable_value),$(NoTitle),$(!REG_VT_SZ),$(disable)},+
  1675.             }
  1676.  
  1677. Shell $(UtilityInf), AddValueList, $(KEY_ENUM), $(ThisValueList)
  1678.  
  1679. ifint $($ShellCode) != $(!SHELL_CODE_OK)
  1680.     goto ShellCodeError
  1681. endif
  1682.  
  1683. ; *************************************************************************************************
  1684.  
  1685. ; *** RWUARP (DATATYPE ENUM) ***
  1686.  
  1687. CreateRegKey $(THISNIC) {"RWUARP", 0, GenericClass} "" $(!REG_KEY_WRITE) "" KEY_RWUARP
  1688. SetRegValue $(KEY_RWUARP),{FriendlyName,$(NoTitle),$(!REG_VT_SZ), "RWU ARP" }
  1689.  
  1690. CreateRegKey $(KEY_RWUARP) {"enum", 0, GenericClass} "" $(!REG_KEY_WRITE) "" KEY_ENUM
  1691.  
  1692. Set ThisValueList =     {{$(enable_value),$(NoTitle),$(!REG_VT_SZ),$(enable)},+
  1693.                {$(disable_value),$(NoTitle),$(!REG_VT_SZ),$(disable)},+
  1694.             }
  1695.  
  1696. Shell $(UtilityInf), AddValueList, $(KEY_ENUM), $(ThisValueList)
  1697.  
  1698. ifint $($ShellCode) != $(!SHELL_CODE_OK)
  1699.     goto ShellCodeError
  1700. endif
  1701.  
  1702. ; *************************************************************************************************
  1703.  
  1704. endif ; End of "Ifstr(i) $(found3ComClientInstance) == "TRUE""
  1705.  
  1706. set found3ComClientInstance = FALSE
  1707.  
  1708. EndForListDo
  1709.  
  1710. CloseRegKey $(ServicesKey)
  1711. CloseRegKey COMKEY
  1712. CloseRegKey SOFTKEY
  1713. CloseRegKey THISNIC
  1714.  
  1715.  
  1716. ;-------------END-------------------------
  1717.  
  1718.  
  1719.         Set NewValueList = {{SlotNumber,$(NoTitle),$(!REG_VT_DWORD),$(SlotNum)},+
  1720.         {media_type,$(NoTitle),$(!REG_VT_SZ),"HWDEFAULT"}}
  1721.  
  1722.         Debug-Output "$(InfFile) : Set HardwareParameterKey = $(NewValueList)"
  1723.         Shell $(UtilityInf), AddValueList, $(HardParameterKey), $(NewValueList)
  1724.  
  1725.         ifint $($ShellCode) != $(!SHELL_CODE_OK)
  1726.             goto ShellCodeError
  1727.         endif
  1728.  
  1729.     else  ; NTDetected != TRUE
  1730.  
  1731.         Set NewValueList = {+
  1732.         {BusNumber,$(NoTitle),$(!REG_VT_DWORD),$(BusNumber)},+
  1733.         {media_type,$(NoTitle),$(!REG_VT_SZ),"HWDEFAULT"}}
  1734.  
  1735.         Debug-Output "$(InfFile) : Set HardwareParameterKey = $(NewValueList)"
  1736.         Shell $(UtilityInf), AddValueList, $(HardParameterKey), $(NewValueList)
  1737.  
  1738.         ifint $($ShellCode) != $(!SHELL_CODE_OK)
  1739.             goto ShellCodeError
  1740.         endif
  1741.  
  1742.     endif ;
  1743.  
  1744.  
  1745.     Set NewValueList = {{BusType,$(NoTitle),$(!REG_VT_DWORD),$(BusInterfaceType)},+
  1746.     {CardType,$(NoTitle),$(!REG_VT_DWORD),$(CardType)},+
  1747.     {MediaType,$(NoTitle),$(!REG_VT_DWORD),1},+
  1748.     }
  1749.  
  1750.     Debug-Output "$(InfFile) : Set HardwareParameterKey = $(NewValueList)"
  1751.     Shell $(UtilityInf), AddValueList, $(HardParameterKey), $(NewValueList)
  1752.  
  1753.     ifint $($ShellCode) != $(!SHELL_CODE_OK)
  1754.         goto ShellCodeError
  1755.     endif
  1756.  
  1757.     ifstr(i) $(!STF_GUI_UNATTENDED) == "YES"
  1758.         Shell $(UtilityInf), AddDefaultNetcardParameters, $(HardParameterKey)
  1759.     endif
  1760.  
  1761.     set TempProdName = """"$(CorrectProdHWName)$(AdapterNumber)""""
  1762.     set TempBindForm = $(TempProdName)$(CorrectNetRuleHWBindForm)
  1763.  
  1764.     set NewValueList = {{type,$(NoTitle),$(!REG_VT_SZ),$(CorrectNetRuleHWType)},+
  1765.     {bindform,$(NoTitle),$(!REG_VT_SZ),$(TempBindForm)}, +
  1766.     {class,$(NoTitle),$(!REG_VT_MULTI_SZ),$(CorrectNetRuleHWClass)}, +
  1767.     {InfOption,$(NoTitle),$(!REG_VT_SZ),$(Option)}}
  1768.  
  1769.     Debug-Output "$(InfFile) : HardwareRuleKey = $(NewValueList)"
  1770.     Shell $(UtilityInf), AddValueList, $(HardNetRuleKey), $(NewValueList)
  1771.  
  1772.     ifint $($ShellCode) != $(!SHELL_CODE_OK)
  1773.         goto ShellCodeEror
  1774.     endif
  1775.  
  1776. ;******************************************************************************************************************
  1777. ;3CDefault
  1778.         set ValueEnable = ENABLE 
  1779.  
  1780.         ifstr(i) $(BoomCard) == TRUE
  1781.             Set ThisValueList = {{WakeOnMagic,$(NoTitle),$(!REG_VT_SZ),$(WakeOnLan)},+
  1782.                          {WakeOnLink,$(NoTitle),$(!REG_VT_SZ),$(WakeOnLink)},+
  1783.                                  {FLOWCONTROL,$(NoTitle),$(!REG_VT_SZ),$(ValueEnable)}}
  1784.         else
  1785.             Set ThisValueList = {{RWUMAGIC,$(NoTitle),$(!REG_VT_SZ),$(ValueEnable)},+
  1786.                                  {FLOWCONTROL,$(NoTitle),$(!REG_VT_SZ),$(ValueEnable)}}
  1787.         endif
  1788.  
  1789.         Shell $(UtilityInf), AddValueList, $(HardParameterKey), $(ThisValueList)
  1790.         
  1791.         ; Create 3CDefault key iff it's a non BOOM card since BOOM cards don't support Wake on Magic Packet
  1792.          ifstr(i) $(BoomCard) == FALSE 
  1793.             CreateRegKey $(HardParameterKey) {"3CDefault" , 0, GenericClass} "" $(!REG_KEY_ALL_ACCESS) +
  1794.              "" KeyNt2 
  1795.  
  1796.             Set ThisValueList = {RWUMAGIC,$(NoTitle),$(!REG_VT_SZ),$(ValueEnable)}
  1797.             SetRegValue $(KeyNt2) $("ThisValueList") 
  1798.         endif
  1799.  
  1800. ;******************************************************************************************************************
  1801.  
  1802.     CloseRegKey $(HardNetCardKey)
  1803.     CloseRegKey $(HardNetRuleKey)
  1804.     CloseRegKey $(HardParameterKey)
  1805.  
  1806.      ifstr(i) $(BoomCard) == FALSE  
  1807.              set NonBoomDetected = TRUE
  1808.              goto endsequence 
  1809.     endif         
  1810.          
  1811.     ifstr(i) $(BoomCard) == TRUE
  1812.         set BoomDetected = TRUE
  1813.     endif
  1814.     
  1815. endsequence =+
  1816.  
  1817.  
  1818.  
  1819.                 ;*******************************************
  1820.                 ;* Driver History Information              *
  1821.                 ;* The following code adds Driver History  *
  1822.                 ;* Information to the system registry      *
  1823.                 ;*******************************************
  1824.  
  1825.                 ; Driver Information Entries
  1826.                 ; These items will be set by IHV...
  1827.                 Set DriverMfgr = "3Com Corporation"                      ; IHV name
  1828.                 Set DriverVersionID = "5.4.3.0"                     ; The IHV driver package version
  1829.                 Set BaseDriverFileName = "EL90XBC4.SYS"          ; Key file for version check
  1830.                 Set BaseDriverFileVersion = "5.4.3.0"               ; Version in Key file
  1831.                 ; These items will be set to VENDOR values, and then set to OEM-specific by OEM
  1832.                 Set DriverOEM = "3Com Corporation"                       ; name of the OEM
  1833.                 Set DriverFamily = "NIC"                         ; device family (NIC, Storage, Video...)
  1834.                 Set DriverProduct = "???"                   ; Specific Name of device (chipset, for example)
  1835.                 Set DriverDescription = " Description - DriverInfo sample"   ; Description of device (product name, OS or system supported)
  1836.                 Set DriverOEMVersion = "5.4.3.0"                     ; OEM-specified version
  1837.  
  1838.                 ; This section is added to all INFs to add registry entries for Driver Info.
  1839.  
  1840.                 set DriverInfoRegList = {"InstalledOptions",$(DriverOEM),$(DriverFamily),$(DriverMfgr),$(DriverProduct)}
  1841.                 set DriverInfoKey = "SOFTWARE"
  1842.                 OpenRegKey $(!REG_H_LOCAL) "" $(DriverInfoKey) $(!REG_KEY_CREATE_SUB_KEY) DriverInfoOldKeyHandle
  1843.                 ifstr $(DriverInfoOldKeyHandle) == ""
  1844.                    shell "subroutn.inf" SetupMessage $(!STF_LANGUAGE) "NONFATAL" "DriverInfo registry failed. Could not open HKLM\Software ("$(RegLastError)")"
  1845.                    set DriverInfoFailed = "FAIL"
  1846.                 else
  1847.                    ForListDo $(DriverInfoRegList)
  1848.                       Set NewDriverInfoKey = $(DriverInfoKey)"\"$($)
  1849.                       OpenRegKey $(!REG_H_LOCAL) "" $(NewDriverInfoKey) $(!REG_KEY_ALL_ACCESS) DriverInfoKeyHandle
  1850.                       ifstr(i) $(DriverInfoKeyHandle) == ""
  1851.                          CreateRegKey $(DriverInfoOldKeyHandle) {$($),0,GenericClass} "" $(!REG_KEY_ALL_ACCESS) "" DriverInfoKeyHandle
  1852.                          ifstr $(DriverInfoKeyHandle) == ""
  1853.                             shell "subroutn.inf" SetupMessage $(!STF_LANGUAGE) "NONFATAL" "DriverInfo registry failed. Could not create key:"$($)" ("$(RegLastError)")"
  1854.                             set DriverInfoFailed = "FAIL"
  1855.                          endif
  1856.                       endif
  1857.                       CloseRegKey $(DriverInfoOldKeyHandle)
  1858.                       set DriverInfoOldKeyHandle = $(DriverInfoKeyHandle)
  1859.                       set DriverInfoKey = $(NewDriverInfoKey)
  1860.                    EndForListDo
  1861.                 endif
  1862.  
  1863.                 ifstr $(DriverInfoFailed) != "FAIL"
  1864.                    SetRegValue $(DriverInfoKeyHandle) {"Description",0,$(!REG_VT_SZ),$(DriverDescription)}
  1865.                    SetRegValue $(DriverInfoKeyHandle) {"CurrentVer",0,$(!REG_VT_SZ),$(DriverOEMVersion)}
  1866.                    SetRegValue $(DriverInfoKeyHandle) {"Ver_"$(DriverOEMVersion),0,$(!REG_VT_SZ),$(DriverVersionID)}
  1867.                    SetRegValue $(DriverInfoKeyHandle) {" BaseDriverFileName",0,$(!REG_VT_SZ),$( BaseDriverFileName)}
  1868.                    SetRegValue $(DriverInfoKeyHandle) {" BaseDriverFileVersion",0,$(!REG_VT_SZ),$(BaseDriverFileVersion)}
  1869.  
  1870.                    CloseRegKey $(DriverInfoKeyHandle)
  1871.                 endif
  1872.  
  1873.                 ;*******************************************
  1874.                 ;* End of Driver History Information       *
  1875.                 ;***********************************************
  1876.  
  1877.  
  1878.  ;******* CREATE DIAG REGISTRY FOR TOUCHDOWN SINCE WE SUPPORT IT **************
  1879.  ; Place an instance in the registry for each instance of the Nic card
  1880.  
  1881.  set TrayIconList = {TCAUDIAG,$(NoTitle),$(!REG_VT_SZ),$(DIAGCARDTYPE)} 
  1882.  
  1883.  OpenRegKey $(!REG_H_LOCAL) "" "SOFTWARE\3Com\"$(CorrectProdSWName) $(!REG_KEY_ALL_ACCESS) NDKeyNt 
  1884.  ifstr $(NDKeyNt) != ""    
  1885.     SetRegValue $(NDKeyNt) $(TrayIconList) 
  1886.     CloseRegKey $(NDKeyNt)
  1887.  endif
  1888.  
  1889.  
  1890.  
  1891.  
  1892.  ; End of Primary installation Loop
  1893.  
  1894.  EndForListDo
  1895.  
  1896.  
  1897.  
  1898.  
  1899.  
  1900.  
  1901.  
  1902.  
  1903.  
  1904.  
  1905.  
  1906.  
  1907.  
  1908.  
  1909.  
  1910.  
  1911. set TrayIconList = {TCAUDIAG,$(NoTitle),$(!REG_VT_SZ),$(DIAGCARDTYPE)} 
  1912.  
  1913.  OpenRegKey $(!REG_H_LOCAL) "" "SOFTWARE\3Com\TCAUDIAG" $(!REG_KEY_ALL_ACCESS) NDKeyNt 
  1914.  ifstr $(NDKeyNt) == ""    
  1915.     CreateRegKey $(!REG_H_LOCAL) {"SOFTWARE\3Com\TCAUDIAG", 0, GenericClass} "" $(!REG_KEY_WRITE) "" NDKeyNt
  1916.  endif
  1917.     SetRegValue $(NDKeyNt) $(TrayIconList) 
  1918.     CloseRegKey $(NDKeyNt)
  1919.  
  1920.  
  1921.  
  1922.     ;;; Add in entries to support the DA/Touchdown integration - REALNICS Key
  1923.     OpenRegKey $(!REG_H_LOCAL) "" "SOFTWARE\3Com\TCAUDIAG\RealNICs" $(!REG_KEY_ALL_ACCESS) RealNICsKey
  1924.  
  1925.     Ifstr(i) $(RealNICsKey) == "" ; key doesn't exist so create it
  1926.     CreateRegKey $(!REG_H_LOCAL) {"SOFTWARE\3Com\TCAUDIAG\RealNICs", 0, GenericClass} "" $(!REG_KEY_ALL_ACCESS) "" RealNICsKey
  1927.     endif
  1928.  
  1929.    
  1930.       Ifstr(i) $(RealNICsKey) != "" ; key exists
  1931.  
  1932.         OpenRegKey $(!REG_H_LOCAL) "" "SYSTEM\CurrentControlSet\Services" $(!REG_KEY_ALL_ACCESS) ServicesKey
  1933.         Ifstr(i) $(ServicesKey) != "" ; key exists
  1934.           EnumRegKey $(ServicesKey) DriverList
  1935.           ForListDo $(DriverList)
  1936.             ;;; Check whether any EL980X driver instances are present still
  1937.             ;;; If not, remove Touchdown and delete some leftover files
  1938.             set foundPythonInstance = FALSE
  1939.             set Driver = *($($), 1)
  1940.             Split-String "$(Driver)" "N" DriverTokens
  1941.             set DriverName = *($(DriverTokens), 1)
  1942.             ifstr(i) $(Driver) != "El980n4"
  1943.               ifstr(i) $(DriverName) == "El980"
  1944.                 ;;; We have found a Python-related key
  1945.                 set foundPythonInstance = TRUE
  1946.               endif
  1947.             endif
  1948.  
  1949.             ifstr(i) $(Driver) != "El98xn4"
  1950.               ifstr(i) $(DriverName) == "El98x"
  1951.                 ;;; We have found a Python-related key
  1952.                 set foundPythonInstance = TRUE
  1953.               endif
  1954.             endif
  1955.  
  1956.             Ifstr(i) $(foundPythonInstance) == "TRUE"
  1957.               ;; Add this driver instance name to the list of realNICs
  1958.               SetRegValue $(RealNICsKey) {$(Driver), 0, $(!REG_VT_SZ), ""}
  1959.             endif
  1960.  
  1961.             set found3ComClientInstance = FALSE
  1962.             Split-String "$(Driver)" "x" DriverTokens
  1963.             set DriverName = *($(DriverTokens), 1)
  1964.             ifstr(i) $(Driver) != "El90x"
  1965.               ifstr(i) $(DriverName) == "El90"
  1966.                 ;;; We have found a 3Com client-related key
  1967.                 set found3ComClientInstance = TRUE
  1968.               endif
  1969.             endif
  1970.  
  1971.             Split-String "$(Driver)" "d" DriverTokens
  1972.             set DriverName = *($(DriverTokens), 1)
  1973.             ifstr(i) $(Driver) != "El90xnd"
  1974.               ifstr(i) $(DriverName) == "El90xn"
  1975.                 ;;; We have found a 3Com client-related key
  1976.                 set found3ComClientInstance = TRUE
  1977.               endif
  1978.             endif
  1979.  
  1980.             Split-String "$(Driver)" "x" DriverTokens
  1981.             set DriverName = *($(DriverTokens), 1)
  1982.             ifstr(i) $(Driver) != "EL99X"
  1983.               ifstr(i) $(DriverName) == "El99"
  1984.                 ;;; We have found a 3Com client-related key
  1985.                 set found3ComClientInstance = TRUE
  1986.               endif
  1987.             endif
  1988.  
  1989.             Ifstr(i) $(found3ComClientInstance) == "TRUE"
  1990.               ;; Add this driver instance name to the list of realNICs
  1991.               SetRegValue $(RealNICsKey) {$(Driver), 0, $(!REG_VT_SZ), ""}
  1992.             endif
  1993.  
  1994.           EndForListDo
  1995.  
  1996.           CloseRegKey $(ServicesKey)
  1997.         Endif
  1998.       Endif
  1999.  
  2000.  
  2001.     CloseRegKey $(DiagKey)
  2002.     CloseRegKey $(RealNICsKey)
  2003.  
  2004. ;End - Add in entries to support the DA/Touchdown integration - REALNICS Key
  2005.  
  2006.  
  2007.  ;;ifstr(i) (*($(CurrentVersionValue),4)) == $(NT400VersionConstant) 
  2008.  
  2009.  OpenRegKey $(!REG_H_LOCAL) "" $(!NTN_ServiceBase)"\"$(CorrectProdHWName) $(!REG_KEY_ALL_ACCESS) KeyService
  2010.  Ifstr $(KeyService) != "" 
  2011.     SetRegValue $(KeyService) {ImagePath,$(NoTitle),$(!REG_VT_SZ),$(CorrectProdSWUpgradePath)}
  2012.  else 
  2013.     goto fatalregistry 
  2014.  endif 
  2015.  
  2016.  CloseRegKey $(KeyService)
  2017.  OpenRegKey $(!REG_H_LOCAL) "" $(!NTN_ServiceBase)"\EventLog\System\"$(CorrectProdHWName) $(!REG_KEY_ALL_ACCESS) KeyEventLog
  2018.  Ifstr $(KeyEventLog) != "" 
  2019.      SetRegValue $(KeyEventLog) {EventMessageFile,$(NoTitle),$(!REG_VT_SZ),$(CorrectNetEventDLL)} 
  2020.  else 
  2021.     goto fatalregistry 
  2022.  endif 
  2023.  
  2024.  CloseRegKey $(KeyEventLog)
  2025.  ;;endif
  2026.  
  2027.  
  2028.  ifint $(OldVersionExisted) == $(FALSE)
  2029.     Ifstr(i) $(DoCopy) == "YES"
  2030.         Shell $(UtilityInf), DoAskSource, $(!STF_CWDDIR), $(SrcDir) NO
  2031.         ifint $($ShellCode) != $(!SHELL_CODE_OK)
  2032.             Goto ShellCodeError
  2033.         endif
  2034.  
  2035.     Else-Ifstr(i) $($R0) == STATUS_FAILED
  2036.         Shell $(UtilityInf) RegistryErrorString "ASK_SOURCE_FAIL"
  2037.         ifint $($ShellCode) != $(!SHELL_CODE_OK)
  2038.             goto ShellCodeError
  2039.         endif
  2040.  
  2041.         set Error = $($R0)
  2042.         Goto fatal
  2043.  
  2044.     Else-Ifstr(i) $($R0) == STATUS_USERCANCEL
  2045.         Goto successful
  2046.     Endif 
  2047.  Endif
  2048.  
  2049.  
  2050.  ;******* CREATE DIAG REGISTRY FOR TOUCHDOWN SINCE WE SUPPORT IT **************
  2051.  
  2052.  set TrayIconList = {TCAUDIAG,$(NoTitle),$(!REG_VT_SZ),$(DIAGCARDTYPE)} 
  2053.  
  2054.  OpenRegKey $(!REG_H_LOCAL) "" "SOFTWARE\3Com\TCAUDIAG" $(!REG_KEY_ALL_ACCESS) NDKeyNt 
  2055.  ifstr $(NDKeyNt) != ""    
  2056.     SetRegValue $(NDKeyNt) $(TrayIconList) 
  2057.     CloseRegKey $(NDKeyNt)
  2058.  endif
  2059.  
  2060. ;******************************************************************************************
  2061. NextCommon =+
  2062. ;******************************************************************************************
  2063.  
  2064.  
  2065.  
  2066.  ; *** All responsibilityies related to the Diags are governed by the Master Navigator.  Section below
  2067.  ; becomes redundant
  2068.  
  2069.  ;install "Install-Uninstaller" 
  2070.  
  2071.  ;OpenRegKey $(!REG_H_LOCAL) "" "SOFTWARE\3Com\"$(ProductSoftwareName) $(!REG_KEY_ALL_ACCESS) + 
  2072.  ;KeyNt
  2073.  
  2074.  ;set TrayIconList = {TCAUDIAG,$(NoTitle),$(!REG_VT_SZ),$(DIAGCARDTYPE)} 
  2075.  ;SetRegValue $(KeyNt) $(TrayIconList) 
  2076.  ;CloseRegKey $(KeyNt) 
  2077.  
  2078. ; ifstr(i) (*($(CurrentVersionValue),4)) == $(NT400VersionConstant) 
  2079. ;    
  2080. ;    ifstr $(Install_3NIC_Diag) == "YES"
  2081. ;        RunProgram ExitCode "Windows Directory" "" $(UnInstallerEXE).EXE "-upgrade" 
  2082. ;        OpenRegKey $(!REG_H_LOCAL) "" "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall" + 
  2083. ;        $(!REG_KEY_ALL_ACCESS) KeyNt 
  2084. ;        
  2085. ;        ifstr $(KeyNt) == "" 
  2086. ;            CreateRegKey $(!REG_H_LOCAL) {"SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall", + 
  2087. ;            0, GenericClass} "" $(!REG_KEY_ALL_ACCESS) "" KeyNt 
  2088. ;        endif 
  2089. ;
  2090. ;        OpenRegKey $(KeyNt) "" "3ComNicUnInstall" $(!REG_KEY_ALL_ACCESS) KeyNt2 
  2091. ;        
  2092. ;        ifstr $(KeyNt2) == "" 
  2093. ;            CreateRegKey $(KeyNt) {"3ComNicUnInstall" , 0, GenericClass} "" $(!REG_KEY_ALL_ACCESS) +
  2094. ;             "" KeyNt2 
  2095. ;        endif 
  2096. ;
  2097. ;        set NewValueList = {{DisplayName, $(NoTitle), $(!REG_VT_SZ), "3Com NIC Diagnostics"}, + 
  2098. ;        {UninstallString, $(NoTitle), $(!REG_VT_SZ), $(UnInstallerEXE).EXE}} 
  2099. ;
  2100. ;        Shell $(UtilityInf), AddValueList, $(KeyNt2), $(NewValueList) 
  2101. ;
  2102. ;        ifint $($ShellCode) != $(!SHELL_CODE_OK) 
  2103. ;            goto ShellCodeError 
  2104. ;        endif 
  2105. ;
  2106. ;        CloseRegKey $(KeyNt) 
  2107. ;        CloseRegKey $(KeyNt2) 
  2108. ;
  2109. ;    endif 
  2110. ; endif 
  2111.  
  2112.  
  2113.  ;ifstr(i) (*($(CurrentVersionValue),4)) == $(NT400VersionConstant) 
  2114.     ;OpenRegKey $(!REG_H_LOCAL) "" "SOFTWARE\Microsoft\Windows\CurrentVersion\Run" +      
  2115.     ;$(!REG_KEY_ALL_ACCESS) KeyNt      
  2116.      
  2117.     ;set TrayIconList = {TCASUTIEXE,$(NoTitle),$(!REG_VT_SZ),$(TrayIconExe)" -off"}
  2118.     ;DeleteRegValue $(KeyNt) "COMSMDEXE"              
  2119.     ;SetRegValue $(KeyNt) $(TrayIconList)      
  2120.     ;CloseRegKey $(KeyNt)      
  2121.            
  2122.     ;ifstr $(Install_3NIC_Diag) == "YES" 
  2123.         ;Debug-Output "$(InfFile) : (Install_3NIC_Diag) == "YES"" 
  2124.         ; Shell "", DiagRegistry 
  2125.      
  2126.         ; ***
  2127.          ;install "Install-3nicdiag" 
  2128.  
  2129.         ;ifstr $(Install_Installer) == "YES" 
  2130.         ;    ifstr(i) $(!STF_GUI_UNATTENDED) != "YES" 
  2131.         ;        ForListDo $(ToInstallList) 
  2132.         ;            set BusNum = *($($),1) 
  2133.         ;            set SlotNum = *($($),2) 
  2134.         ;            RunProgram ExitCode "Windows Directory" "" $(InstallerExe).EXE + 
  2135.         ;            "cardtype=TCAUM90X" "bus="$(BusNum) "slot="$(SlotNum) 
  2136.         ;        EndForListDo 
  2137.         ;    endif 
  2138.         ;endif 
  2139.           
  2140.         ;set SRCDIR_OVERRIDE_Save = $(!STF_SRCDIR_OVERRIDE) 
  2141.         ;set !STF_SRCDIR_OVERRIDE = $(SrcDir) 
  2142.              ;Shell $(!STF_WINDOWSSYSPATH)\TCAITDI.INF, InstallOption, $(CurrLang),+ 
  2143.              ;"TCAITDI" ,$(SrcDir), YES, YES, YES, NO 
  2144.         ;set !STF_SRCDIR_OVERRIDE = $(SRCDIR_OVERRIDE_Save) 
  2145.      
  2146.         ;ifstr(i) $(Install_Shortcuts) == "YES" 
  2147.             ;Debug-Output "$(InfFile) : (Install_Shortcuts) == "YES"" 
  2148.                     ; *** Responsilibity of the MasterNavigator ***
  2149.                     ;RunProgram ExitCode "Windows Directory" "" $(UnInstallerEXE).EXE "-setup" 
  2150.  
  2151.             ;Debug-Output "$(InfFile) : Enabling Tray Icon" 
  2152.             ;OpenRegKey $(!REG_H_LOCAL) "" "SOFTWARE\Microsoft\Windows\CurrentVersion\Run" +
  2153.             ; $(!REG_KEY_ALL_ACCESS) KeyNt 
  2154.  
  2155.             ;set TrayIconList = {TCASUTIEXE,$(NoTitle),$(!REG_VT_SZ),$(TrayIconExe)" -off"} 
  2156.             ;SetRegValue $(KeyNt) $(TrayIconList)
  2157.             ;DeleteRegValue $(KeyNt) "COMSMDEXE" 
  2158.             ;CloseRegKey $(KeyNt) 
  2159.         ;endif 
  2160.      ;endif 
  2161.  ;endif 
  2162.  
  2163.  ifint $(OldVersionExisted) == $(FALSE)
  2164.     Ifstr(i) $(DoCopy) == "YES"
  2165.         Shell $(UtilityInf), DoAskSource, $(!STF_CWDDIR), $(SrcDir) NO
  2166.         ifint $($ShellCode) != $(!SHELL_CODE_OK)
  2167.             Goto ShellCodeError
  2168.  
  2169.         Else-Ifstr(i) $($R0) == STATUS_FAILED
  2170.             Shell $(UtilityInf) RegistryErrorString "ASK_SOURCE_FAIL"
  2171.  
  2172.             ifint $($ShellCode) != $(!SHELL_CODE_OK)
  2173.                 goto ShellCodeError
  2174.             endif
  2175.  
  2176.             set Error = $($R0)
  2177.             Goto fatal
  2178.         
  2179.         Else-Ifstr(i) $($R0) == STATUS_USERCANCEL
  2180.             Goto successful
  2181.         Endif
  2182.  
  2183.     Endif
  2184.  
  2185.  ;**************** check if 905BC and copy new NDIS4 driver ********************
  2186.  
  2187.     ifstr(i) $(NonBoomDetected) == TRUE
  2188.         install "Install-OptionNewNDIS"
  2189.     endif
  2190.  
  2191.     ifstr(i) $(BoomDetected) == TRUE
  2192.         goto oldndis
  2193.     endif
  2194.  
  2195. oldndis =+
  2196.     install "Install-Option" 
  2197.     
  2198. endcurrent =+
  2199.     ifstr(i) $(STF_INSTALL_OUTCOME) != STF_SUCCESS
  2200.         Shell $(UtilityInf) RegistryErrorString "UNABLE_COPY_FILE"
  2201.         
  2202.         ifint $($ShellCode) != $(!SHELL_CODE_OK)
  2203.             goto ShellCodeError
  2204.         endif
  2205.  
  2206.         set Error = $($R0)
  2207.         goto fatal
  2208.     endif
  2209.  endif
  2210.  
  2211.  
  2212.  EndWait
  2213.  goto successful
  2214.  
  2215. updateparameters =+
  2216.  Debug-Output "$(InfFile) : Updateparameters"
  2217.  set HardParameterKey = $($R3)
  2218.  
  2219.  ifint $($ShellCode) != $(!SHELL_CODE_OK)
  2220.     goto ShellCodeError
  2221.  endif
  2222.  
  2223.  CloseRegKey $(KeyParameters)
  2224.  goto successful
  2225.  
  2226. bindingadapter =+
  2227.  Debug-Output "$(InfFile) : bindingadapter"
  2228.  Return STATUS_SUCCESSFUL
  2229.  
  2230.  set Error = "Binding: Sorry, not yet implemented."
  2231.  goto fatal
  2232.  
  2233. removeadapter = +
  2234.  
  2235.  ;****************************************************************************************
  2236.  ; Check if 905BC or Boomerang
  2237.  ;****************************************************************************************
  2238.  
  2239.  set BoomCard = FALSE
  2240.  set CurrentCardPath =  $(!NTN_RegBase)
  2241.  set TitleValue = ""
  2242.  set CardTitle = ""
  2243.  set NameTokenList = ""
  2244.  
  2245.  OpenRegKey $(!REG_H_LOCAL) "" $(CurrentCardPath) $(!REG_KEY_READ) CurrentCardKey
  2246.  
  2247.  Ifstr(i) $(CurrentCardKey) != ""
  2248.     GetRegValue $(CurrentCardKey) "Title" TitleValue
  2249.     set CardTitle = *($(TitleValue), 4)
  2250.     Split-String $(CardTitle) "()" NameTokenList
  2251.     set NameCode = *($(NameTokenList), 3)
  2252.  
  2253.     Ifstr(i) $(NameCode) == "3C905-TX"
  2254.        set BoomCard = TRUE 
  2255.     Else-Ifstr(i) $(NameCode) == "3C905-T4"
  2256.        set BoomCard = TRUE 
  2257.     Else-Ifstr(i) $(NameCode) == "3C900-TPO"
  2258.        set BoomCard = TRUE 
  2259.     Else-Ifstr(i) $(NameCode) == "3C900-COMBO"
  2260.        set BoomCard = TRUE 
  2261.     endif
  2262.  
  2263.     CloseRegKey $(CurrentCardKey)
  2264.  Endif                         ;end checking currentCardKey
  2265. ;****************************************************************************************
  2266.  
  2267.  
  2268.  ifstr(i) $(BoomCard) == TRUE 
  2269.     set CorrectProdHWName = $(NDProdHWName)
  2270.     set CorrectProdSWName = $(NDProdSWName)
  2271.     set CorrectProdKeyName = $(NDProdKeyName)
  2272.  else
  2273.     set CorrectProdHWName = $(ProdHWName)
  2274.     set CorrectProdSWName = $(ProdSWName)
  2275.     set CorrectProdKeyName = $(ProdKeyName)
  2276.  endif
  2277.  
  2278.  Debug-Output "$(InfFile) : removeadapter"
  2279.  Debug-Output "$(InfFile) : ----> $(CorrectProdKeyName), $(!NTN_RegBase)"
  2280.  
  2281.  Ifstr(i) $(CorrectProdKeyName) == $(!NTN_RegBase)
  2282.      Shell $(UtilityInf), RemoveSoftwareComponent, $(Manufacturer), +
  2283.      $(CorrectProdSWName)
  2284.  
  2285.      ifint $($ShellCode) != $(!SHELL_CODE_OK)
  2286.         goto ShellCodeError
  2287.      endif
  2288.  
  2289.      set RegistryErrorIndex = $($R0)
  2290.      Ifstr(i) $(RegistryErrorIndex) != NO_ERROR
  2291.         goto fatalregistry
  2292.      endif
  2293.  else
  2294.     ; Populate Driver Instance
  2295.        OpenRegKey $(!REG_H_LOCAL) "" $(!NTN_RegBase) $(!REG_KEY_ALL_ACCESS) CardIndexKey
  2296.        Ifstr(i) $(CardIndexKey) != "" ; key exists
  2297.              GetRegValue $(CardIndexKey) "ServiceName" ServiceNameList
  2298.  
  2299.              ;;; The name of the service being removed is stored in DriverInstance
  2300.              set DriverInstance = *($(ServiceNameList), 4)
  2301.        endif
  2302.        CloseRegKey $(CardIndexKey)
  2303. ; End - Populate Driver Instance
  2304.  
  2305. ;------------Added Maanasa Kasturi 05/04/01 3:04pm---------------------------
  2306.     ; Remove NT4_CFG nic instance key
  2307.     OpenRegKey $(!REG_H_LOCAL) "" $(!NTN_RegBase) $(!REG_KEY_ALL_ACCESS) CardInstanceKey
  2308.        Ifstr(i) $(CardInstanceKey) != "" ; key exists
  2309.              GetRegValue $(CardIndexKey) "ServiceName" ServiceNameList
  2310.  
  2311.              ;;; The name of the service being removed is stored in NICServiceName
  2312.              set NICServiceName = *($(ServiceNameList), 4)
  2313.         
  2314.         OpenRegKey $(!REG_H_LOCAL) "" "SOFTWARE\3COM\" $(!REG_KEY_ALL_ACCESS) 3ComNT4_CFGKEY
  2315.         Ifstr(i) $(3ComNT4_CFGKEY) != "" ; key exists
  2316.             DeleteRegTree $(3ComNT4_CFGKEY) $(NICServiceName) 
  2317.  
  2318.         endif
  2319.        endif
  2320.     CloseRegKey $(3ComNT4_CFGKEY)
  2321.        CloseRegKey $(CardInstanceKey)
  2322.  
  2323.  
  2324. ; End - Remove NT4_CFG nic instance key
  2325. ;---------------------------------------------END--------------------------------
  2326.  
  2327.  
  2328.      Shell $(UtilityInf), RemoveHardwareComponent, $(Manufacturer), +
  2329.      $(CorrectProdSWName), $(!NTN_RegBase)
  2330.      ifint $($ShellCode) != $(!SHELL_CODE_OK)
  2331.         goto ShellCodeError
  2332.      endif
  2333.  
  2334.      set RegistryErrorIndex = $($R0)
  2335.      Ifstr(i) $(RegistryErrorIndex) != NO_ERROR
  2336.         goto fatalregistry
  2337.      endif
  2338.  endif
  2339.  
  2340.  
  2341.  
  2342.  
  2343.  ifstr(i) $(!STF_PLATFORM) == $(INF_PROCESSER) 
  2344.     ; *** Responsilibity of the MasterNavigator ***
  2345.         ; RunProgram ExitCode "Windows Directory" "" $(UnInstallerEXE).EXE "-inf" 
  2346.  endif
  2347.  
  2348.  
  2349.  ;;; Remove the Service Name held in DriverInstance from the RealNICs key
  2350.  
  2351.  OpenRegKey $(!REG_H_LOCAL) "" "SOFTWARE\3Com\TCAUDIAG\RealNICs" $(!REG_KEY_ALL_ACCESS) RealNICsKey
  2352.  Ifstr(i) $(RealNICsKey) != "" ; key exists
  2353.    EnumRegValue $(RealNICsKey) RealNICsList
  2354.    set RealNICsValues = {}
  2355.    ForListDo $(RealNICsList)
  2356.      set RealNICsArray = *($($), 1)
  2357.      ForListDo $(RealNICsArray)
  2358.        set DriverInstanceName = *($($), 1)
  2359.        QueryListSize RealNICsValuesSize $(RealNICsValues)
  2360.        ifstr(i) $(RealNICsValuesSize) == 0
  2361.          set RealNICsValues = {$(DriverInstanceName)}
  2362.        else
  2363.          set RealNICsValues = >($(RealNICsValues), $(DriverInstanceName))
  2364.        endif
  2365.      EndForListDo
  2366.    EndForListDo
  2367.  
  2368.    set NewRealNICsValues = {}
  2369.  
  2370.    ForListDo $(RealNICsValues)
  2371.      ifstr(i) *($($), 1) != $(DriverInstance)
  2372.        set NewRealNICsValues = >($(NewRealNICsValues), *($($), 1))
  2373.      endif
  2374.    EndForListDo
  2375.  
  2376.    CloseRegKey $(DiagKey)
  2377.    OpenRegKey $(!REG_H_LOCAL) "" "SOFTWARE\3Com\TCAUDIAG" $(!REG_KEY_ALL_ACCESS) DiagKey
  2378.    Ifstr(i) $(DiagKey) != "" ; key exists
  2379.      DeleteRegTree $(DiagKey) "RealNICs"
  2380.      CreateRegKey $(DiagKey) {"RealNICs", 0, GenericClass} "" $(!REG_KEY_ALL_ACCESS) "" NewRealNICsKey
  2381.      Ifstr(i) $(NewRealNICsKey) != "" ; key exists
  2382.        ForListDo $(NewRealNICsValues)
  2383.          SetRegValue $(NewRealNICsKey) {*($($), 1), 0, $(!REG_VT_SZ), ""}
  2384.        EndForListDo
  2385.      Endif
  2386.    Endif
  2387.  Endif
  2388.  
  2389.  CloseRegKey $(NewRealNICsKey)
  2390.  CloseRegKey $(RealNICsKey)
  2391.  CloseRegKey $(DiagKey)
  2392.  
  2393. ; End Remove the Service Name held in DriverInstance from the RealNICs key
  2394.  
  2395.  goto end
  2396.  
  2397.  
  2398.  
  2399. UpgradeSoftware = +
  2400.  
  2401.  ;****************************************************************************************
  2402.  ; Check if 90xBC or Boomerang
  2403.  ;****************************************************************************************
  2404.  
  2405.         
  2406.         OpenRegKey $(!REG_H_LOCAL) "" "Software\Microsoft\Windows NT\CurrentVersion\NetworkCards" $(MAXIMUM_ALLOWED) NetworkCardsKey
  2407.                         
  2408.         Ifstr $(NetworkCardsKey) == $(KeyNull)
  2409.             goto fatalregistry
  2410.         endif
  2411.  
  2412.         EnumRegKey $(NetworkCardsKey) NetworkCardsList
  2413.  
  2414.                         
  2415.         ForListDo $(NetworkCardsList)
  2416.             OpenRegKey $(NetworkCardsKey) "" *($($), 1) $(MAXIMUM_ALLOWED) CurrentNetworkKey
  2417.                             
  2418.             ifstr $(CurrentNetworkKey) == $(KeyNull)
  2419.             goto fatalregistry
  2420.             endif
  2421.             
  2422.             GetRegValue $(CurrentNetworkKey) "ProductName" ProductNameValue
  2423.             
  2424.             set List = {$(NDProdSWName), $(ProdSWName)} 
  2425.             Set NICProductName = *($(ProductNameValue),4)
  2426.                 
  2427.             ifcontains(i) $(NICProductName) in $(List)
  2428.                 
  2429.                 GetRegValue $(CurrentNetworkKey) "ServiceName" ServiceNameValue
  2430.                   ifstr $(ServiceNameValue) == $(KeyNull)
  2431.                 goto fatalregistry
  2432.                 endif    
  2433.                 Set NICServiceName = *($(ServiceNameValue),4)
  2434.                 
  2435.                 OpenRegKey $(!REG_H_LOCAL) "" "SYSTEM\CurrentControlSet\Services\"$(NICServiceName)"\Parameters" $(!REG_KEY_ALL_ACCESS) ParametersServicesKey
  2436.                 SetRegValue $(ParametersServicesKey) {"InitDelayCount", 0, $(!REG_VT_SZ), "0"}
  2437.                 SetRegValue $(ParametersServicesKey) {"DoubleNego", 0, $(!REG_VT_SZ), "ENABLE"}
  2438.                 SetRegValue $(ParametersServicesKey) {"PHYCompat", 0, $(!REG_VT_SZ), "ENABLE"}
  2439.                 SetRegValue $(ParametersServicesKey) {"LnkChk", 0, $(!REG_VT_SZ), "DISABLE"}
  2440.                 SetRegValue $(ParametersServicesKey) {"RWUMAGIC", 0, $(!REG_VT_SZ), "ENABLE"}
  2441.                 SetRegValue $(ParametersServicesKey) {"RWUPING", 0, $(!REG_VT_SZ), "DISABLE"}
  2442.                 SetRegValue $(ParametersServicesKey) {"RWUARP", 0, $(!REG_VT_SZ), "DISABLE"}
  2443.             CloseRegKey $(ParametersServicesKey)
  2444.  
  2445.             ; Update Keys for NT4_CFG.EXE in 3Com\Software section for NIC instance  *****************************************
  2446.  
  2447.             OpenRegKey $(!REG_H_LOCAL) "" "Software\3Com\"$(NICServiceName)"" $(!REG_KEY_ALL_ACCESS) THISNIC
  2448.  
  2449.                     ; *** InitDelayCount (DATATYPE ENUM) ***
  2450.  
  2451.                     CreateRegKey $(THISNIC) {"InitDelayCount", 0, GenericClass} "" $(!REG_KEY_WRITE) "" KEY_InitDelayCount
  2452.  
  2453.                     SetRegValue $(KEY_InitDelayCount),{FriendlyName,$(NoTitle),$(!REG_VT_SZ), "InitDelayCount" }
  2454.  
  2455.                     CreateRegKey $(KEY_InitDelayCount) {"range", 0, GenericClass} "" $(!REG_KEY_WRITE) "" KEY_ENUM
  2456.  
  2457.                     Set ThisValueList =     {{ParamDesc,$(NoTitle),$(!REG_VT_SZ),"InitDelayCount"},+
  2458.                                    {Default,$(NoTitle),$(!REG_VT_SZ),"0"},+
  2459.                                    {type,$(NoTitle),$(!REG_VT_SZ),$(int)},+
  2460.                                  {min,$(NoTitle),$(!REG_VT_SZ),"0"},+
  2461.                                  {max,$(NoTitle),$(!REG_VT_SZ),"60"},+
  2462.                                  {step,$(NoTitle),$(!REG_VT_SZ),"1"},+
  2463.                                  {base,$(NoTitle),$(!REG_VT_SZ),"10"},+
  2464.                                 }
  2465.  
  2466.                     Shell $(UtilityInf), AddValueList, $(KEY_ENUM), $(ThisValueList)
  2467.  
  2468.                     ifint $($ShellCode) != $(!SHELL_CODE_OK)
  2469.                         goto ShellCodeError
  2470.                     endif
  2471.  
  2472.                     ; *************************************************************************************************
  2473.  
  2474.                     ; *** DoubleNego (DATATYPE ENUM) ***
  2475.  
  2476.                     CreateRegKey $(THISNIC) {"DoubleNego", 0, GenericClass} "" $(!REG_KEY_WRITE) "" KEY_DoubleNego
  2477.                     SetRegValue $(KEY_DoubleNego),{FriendlyName,$(NoTitle),$(!REG_VT_SZ), "DoubleNego" }
  2478.  
  2479.                     CreateRegKey $(KEY_DoubleNego) {"enum", 0, GenericClass} "" $(!REG_KEY_WRITE) "" KEY_ENUM
  2480.  
  2481.                     Set ThisValueList =     {{$(enable_value),$(NoTitle),$(!REG_VT_SZ),$(enable)},+
  2482.                                    {$(disable_value),$(NoTitle),$(!REG_VT_SZ),$(disable)},+
  2483.                                 }
  2484.  
  2485.                     Shell $(UtilityInf), AddValueList, $(KEY_ENUM), $(ThisValueList)
  2486.  
  2487.                     ifint $($ShellCode) != $(!SHELL_CODE_OK)
  2488.                         goto ShellCodeError
  2489.                     endif
  2490.  
  2491.                     ; *************************************************************************************************
  2492.  
  2493.                     ; *** PHYCompat (DATATYPE ENUM) ***
  2494.  
  2495.                     CreateRegKey $(THISNIC) {"PHYCompat", 0, GenericClass} "" $(!REG_KEY_WRITE) "" KEY_PHYCompat
  2496.                     SetRegValue $(KEY_PHYCompat),{FriendlyName,$(NoTitle),$(!REG_VT_SZ), "PHYCompat" }
  2497.  
  2498.                     CreateRegKey $(KEY_PHYCompat) {"enum", 0, GenericClass} "" $(!REG_KEY_WRITE) "" KEY_ENUM
  2499.  
  2500.                     Set ThisValueList =     {{$(enable_value),$(NoTitle),$(!REG_VT_SZ),$(enable)},+
  2501.                                    {$(disable_value),$(NoTitle),$(!REG_VT_SZ),$(disable)},+
  2502.                                 }
  2503.  
  2504.                     Shell $(UtilityInf), AddValueList, $(KEY_ENUM), $(ThisValueList)
  2505.  
  2506.                     ifint $($ShellCode) != $(!SHELL_CODE_OK)
  2507.                         goto ShellCodeError
  2508.                     endif
  2509.  
  2510.                     ; *************************************************************************************************
  2511.  
  2512.                     ; *** LnkChk (DATATYPE ENUM) ***
  2513.  
  2514.                     CreateRegKey $(THISNIC) {"LnkChk", 0, GenericClass} "" $(!REG_KEY_WRITE) "" KEY_LnkChk
  2515.                     SetRegValue $(KEY_LnkChk),{FriendlyName,$(NoTitle),$(!REG_VT_SZ), "LnkChk" }
  2516.  
  2517.                     CreateRegKey $(KEY_LnkChk) {"enum", 0, GenericClass} "" $(!REG_KEY_WRITE) "" KEY_ENUM
  2518.  
  2519.                     Set ThisValueList =     {{$(enable_value),$(NoTitle),$(!REG_VT_SZ),$(enable)},+
  2520.                                    {$(disable_value),$(NoTitle),$(!REG_VT_SZ),$(disable)},+
  2521.                                 }
  2522.  
  2523.                     Shell $(UtilityInf), AddValueList, $(KEY_ENUM), $(ThisValueList)
  2524.  
  2525.                     ifint $($ShellCode) != $(!SHELL_CODE_OK)
  2526.                         goto ShellCodeError
  2527.                     endif
  2528.  
  2529.                     ; *************************************************************************************************
  2530.  
  2531.                     ; *** RWUMAGIC (DATATYPE ENUM) ***
  2532.  
  2533.                     CreateRegKey $(THISNIC) {"RWUMAGIC", 0, GenericClass} "" $(!REG_KEY_WRITE) "" KEY_RWUMAGIC
  2534.                     SetRegValue $(KEY_RWUMAGIC),{FriendlyName,$(NoTitle),$(!REG_VT_SZ), "RWU Magic Pkt" }
  2535.  
  2536.                     CreateRegKey $(KEY_RWUMAGIC) {"enum", 0, GenericClass} "" $(!REG_KEY_WRITE) "" KEY_ENUM
  2537.  
  2538.                     Set ThisValueList =     {{$(enable_value),$(NoTitle),$(!REG_VT_SZ),$(enable)},+
  2539.                                    {$(disable_value),$(NoTitle),$(!REG_VT_SZ),$(disable)},+
  2540.                                 }
  2541.  
  2542.                     Shell $(UtilityInf), AddValueList, $(KEY_ENUM), $(ThisValueList)
  2543.  
  2544.                     ifint $($ShellCode) != $(!SHELL_CODE_OK)
  2545.                         goto ShellCodeError
  2546.                     endif
  2547.  
  2548.                     ; *************************************************************************************************
  2549.  
  2550.                     ; *** RWUPING (DATATYPE ENUM) ***
  2551.  
  2552.                     CreateRegKey $(THISNIC) {"RWUPING", 0, GenericClass} "" $(!REG_KEY_WRITE) "" KEY_RWUPING
  2553.                     SetRegValue $(KEY_RWUPING),{FriendlyName,$(NoTitle),$(!REG_VT_SZ), "RWU Ping" }
  2554.  
  2555.                     CreateRegKey $(KEY_RWUPING) {"enum", 0, GenericClass} "" $(!REG_KEY_WRITE) "" KEY_ENUM
  2556.  
  2557.                     Set ThisValueList =     {{$(enable_value),$(NoTitle),$(!REG_VT_SZ),$(enable)},+
  2558.                                    {$(disable_value),$(NoTitle),$(!REG_VT_SZ),$(disable)},+
  2559.                                 }
  2560.  
  2561.                     Shell $(UtilityInf), AddValueList, $(KEY_ENUM), $(ThisValueList)
  2562.  
  2563.                     ifint $($ShellCode) != $(!SHELL_CODE_OK)
  2564.                         goto ShellCodeError
  2565.                     endif
  2566.  
  2567.                     ; *************************************************************************************************
  2568.  
  2569.                     ; *** RWUARP (DATATYPE ENUM) ***
  2570.  
  2571.                     CreateRegKey $(THISNIC) {"RWUARP", 0, GenericClass} "" $(!REG_KEY_WRITE) "" KEY_RWUARP
  2572.                     SetRegValue $(KEY_RWUARP),{FriendlyName,$(NoTitle),$(!REG_VT_SZ), "RWU ARP" }
  2573.  
  2574.                     CreateRegKey $(KEY_RWUARP) {"enum", 0, GenericClass} "" $(!REG_KEY_WRITE) "" KEY_ENUM
  2575.  
  2576.                     Set ThisValueList =     {{$(enable_value),$(NoTitle),$(!REG_VT_SZ),$(enable)},+
  2577.                                    {$(disable_value),$(NoTitle),$(!REG_VT_SZ),$(disable)},+
  2578.                                 }
  2579.  
  2580.                     Shell $(UtilityInf), AddValueList, $(KEY_ENUM), $(ThisValueList)
  2581.  
  2582.                     ifint $($ShellCode) != $(!SHELL_CODE_OK)
  2583.                         goto ShellCodeError
  2584.                     endif
  2585.  
  2586.                     ; *************************************************************************************************
  2587.             
  2588.                     ;*** Remove Keys Section ***
  2589.                 
  2590.                     DeleteRegTree $(THISNIC) "CableToDetectTimer"
  2591.                     DeleteRegTree $(THISNIC) "CableHoldOffTimer"
  2592.  
  2593.                     ; *************************************************************************************************
  2594.                     
  2595.             CloseRegKey (THISNIC)
  2596.  
  2597.             ; End Update Keys for NT4_CFG.EXE in 3Com\Software section for NIC instance ****************************************
  2598.  
  2599.             else
  2600.               endif
  2601.             CloseRegKey $(CurrentNetworkKey)
  2602.         EndForListDo
  2603.         CloseRegKey $(NetworkCardsKey)
  2604.  
  2605.  set BoomCard = FALSE
  2606.  set CurrentCardPath =  $(!NTN_RegBase)
  2607.  set TitleValue = ""
  2608.  set CardTitle = ""
  2609.  set NameTokenList = ""
  2610.  
  2611.  OpenRegKey $(!REG_H_LOCAL) "" $(CurrentCardPath) $(!REG_KEY_READ) CurrentCardKey
  2612.  Ifstr(i) $(CurrentCardKey) != ""
  2613.     GetRegValue $(CurrentCardKey) "Title" TitleValue
  2614.     set CardTitle = *($(TitleValue), 4)
  2615.     Split-String $(CardTitle) "()" NameTokenList
  2616.     set NameCode = *($(NameTokenList), 3)
  2617.  
  2618.     Ifstr(i) $(NameCode) == "3C905-TX"
  2619.        set BoomCard = TRUE  
  2620.     Else-Ifstr(i) $(NameCode) == "3C905-T4"
  2621.        set BoomCard = TRUE 
  2622.     Else-Ifstr(i) $(NameCode) == "3C900-TPO"
  2623.        set BoomCard = TRUE 
  2624.     Else-Ifstr(i) $(NameCode) == "3C900-COMBO"
  2625.        set BoomCard = TRUE
  2626.     Else-Ifstr(i) $(NameCode) == "3C905"       ; name in oemsetup.inf provided by Microsoft
  2627.        set BoomCard = TRUE  
  2628.     endif
  2629.  
  2630.     CloseRegKey $(CurrentCardKey)
  2631.  Endif                         ;end checking currentCardKey
  2632.  
  2633.  
  2634.  
  2635.  ifstr(i) $(BoomCard) == TRUE ; BOOM CARD
  2636.  ;****************************************************************************************
  2637.  ; ONLY SUPPORT BOOMERANG UPDATE WHEN IT HAD NEW SERVICE NAME EL90XND IN THE REGISTRY 
  2638.  ;****************************************************************************************
  2639.  
  2640.     OpenRegKey $(!REG_H_LOCAL) "" $(!NTN_ServiceBase)"\El90xnd" $(!REG_KEY_ALL_ACCESS) KeyService
  2641.     Ifstr $(KeyService) == ""
  2642.         Set DlgText = "UPDATE not supported. Please remove this NIC and reinstall it"       
  2643.         Shell "Subroutn.Inf" SetupMessage $(!STF_LANGUAGE) "WARNING" $(DlgText) 
  2644.         goto end
  2645.     endif  
  2646.  
  2647.     CloseRegKey $(KeyService) 
  2648.     set CorrectProdHWName = $(NDProdHWName)
  2649.     set CorrectProdSWName = $(NDProdSWName)
  2650.     set CorrectNetRuleSWType = $(NDNetRuleSWType)
  2651.     set CorrectNetRuleSWBindForm = $(NDNetRuleSWBindForm)
  2652.     set CorrectNetRuleSWClass = $(NDNetRuleSWClass)
  2653.     set CorrectNetRuleSWBindable = $(NDNetRuleSWBindable)
  2654.     set CorrectNetRuleHWBindForm = $(NDNetRuleHWBindForm)
  2655.     set CorrectNetRuleHWType = $(NDNetRuleHWType)
  2656.     set CorrectNetRuleHWClass = $(NDNetRuleHWClass)
  2657.     set CorrectProdKeyName = $(NDProdKeyName)
  2658.     set CorrectParamKeyName = $(NDParamKeyName)
  2659.  
  2660.     ifstr(i) (*($(CurrentVersionValue),4)) == $(NT400VersionConstant) 
  2661.         set CorrectNetEventDLL = $(ND4NDNetEventDLL)
  2662.         set CorrectProdSWImagePath = $(ND4NDProdSWImagePath)
  2663.         set CorrectProdSWUpgradePath = $(ND4NDProdSWUpgradePath)
  2664.     else
  2665.         set CorrectNetEventDLL = $(ND3NDNetEventDLL)
  2666.         set CorrectProdSWImagePath = $(ND3NDProdSWImagePath)
  2667.         set CorrectProdSWUpgradePath = $(ND3NDProdSWUpgradePath)
  2668.     endif
  2669.  
  2670.  else ; 90XBC CARD
  2671.  
  2672.     set CorrectProdHWName = $(ProdHWName)
  2673.     set CorrectProdSWName = $(ProdSWName)
  2674.     set CorrectNetRuleSWType = $(NetRuleSWType)
  2675.     set CorrectNetRuleSWBindForm = $(NetRuleSWBindForm)
  2676.     set CorrectNetRuleSWClass = $(NetRuleSWClass)
  2677.     set CorrectNetRuleSWBindable = $(NetRuleSWBindable)
  2678.     set CorrectNetRuleHWBindForm = $(NetRuleHWBindForm)
  2679.     set CorrectNetRuleHWType = $(NetRuleHWType)
  2680.     set CorrectNetRuleHWClass = $(NetRuleHWClass)
  2681.     set CorrectProdKeyName = $(ProdKeyName)
  2682.     set CorrectParamKeyName = $(ParamKeyName)
  2683.  
  2684.     ifstr(i) (*($(CurrentVersionValue),4)) == $(NT400VersionConstant) 
  2685.         set CorrectNetEventDLL = $(ND4BCNetEventDLL)
  2686.         set CorrectProdSWImagePath = $(ND4BCProdSWImagePath)
  2687.         set CorrectProdSWUpgradePath = $(ND4BCProdSWUpgradePath)
  2688.     else
  2689.         set CorrectNetEventDLL = $(ND3BCNetEventDLL)
  2690.         set CorrectProdSWImagePath = $(ND3BCProdSWImagePath)
  2691.         set CorrectProdSWUpgradePath = $(ND3BCProdSWUpgradePath)
  2692.     endif
  2693.  
  2694.  endif ; END CHECK CARD
  2695.  
  2696.  ;****************************************************************************************
  2697.  OpenRegKey $(!REG_H_LOCAL) "" $(CorrectProdKeyName) $(!REG_KEY_ALL_ACCESS) KeyProduct 
  2698.  Ifstr $(KeyProduct) != "" 
  2699.     Shell $(UtilityInf), GetInfFileNameFromRegistry, $(KeyProduct) 
  2700.     ifint $($ShellCode) != $(!SHELL_CODE_OK) 
  2701.         Debug-Output "ShellCode error" 
  2702.         goto ShellCodeError 
  2703.     endif 
  2704.  
  2705.     set !UG_Filename = $($R0) 
  2706.     install "Install-INF" 
  2707.     ifstr(i) $(STF_INSTALL_OUTCOME) != STF_SUCCESS 
  2708.         goto fatal 
  2709.     endif 
  2710.  
  2711.     SetRegValue $(KeyProduct) {MajorVersion,$(NoTitle),$(!REG_VT_DWORD),$(ProdMajorVer)} 
  2712.     SetRegValue $(KeyProduct) {MinorVersion,$(NoTitle),$(!REG_VT_DWORD),$(ProdMinorVer)} 
  2713.     SetRegValue $(KeyProduct) {Review,$(NoTitle),$(!REG_VT_DWORD),$(ProdReview)} 
  2714.     SetRegValue $(KeyProduct) {EDVersion,$(NoTitle),$(!REG_VT_SZ),$(EtherDiskVersion)} 
  2715.     CloseRegKey $(KeyProduct)
  2716.  
  2717.     OpenRegKey $(!REG_H_LOCAL) "" $(!NTN_ServiceBase)"\"$(CorrectProdHWName) $(!REG_KEY_ALL_ACCESS) KeyService
  2718.     Ifstr $(KeyService) != "" 
  2719.         SetRegValue $(KeyService) {ImagePath,$(NoTitle),$(!REG_VT_SZ),$(CorrectProdSWUpgradePath)}
  2720.     else 
  2721.         goto fatalregistry
  2722.     endif  
  2723.     
  2724.     CloseRegKey $(KeyService) 
  2725.     OpenRegKey $(!REG_H_LOCAL) "" $(!NTN_ServiceBase)"\EventLog\System\"$(CorrectProdHWName) $(!REG_KEY_ALL_ACCESS) KeyEventLog
  2726.  
  2727.     Ifstr $(KeyEventLog) != "" 
  2728.         SetRegValue $(KeyEventLog) {EventMessageFile,$(NoTitle),$(!REG_VT_SZ),$(CorrectNetEventDLL)} 
  2729.     else 
  2730.         goto fatalregistry 
  2731.     endif 
  2732.  
  2733.     CloseRegKey $(KeyEventLog)
  2734. OpenRegKey $(!REG_H_LOCAL) "" $(!NTN_ServiceBase) $(!REG_KEY_ALL_ACCESS) KeyNt 
  2735.  
  2736. ;******************************************************************************************************************
  2737. ;Update Loop
  2738.  
  2739.         set ValueEnable = ENABLE 
  2740.         set Count     = "0"
  2741.         set MaxLoop    = "128"
  2742.         
  2743.         Begin_Upgrade_Loop =+
  2744.  
  2745.  
  2746.         ;shell "subroutn.inf" SetupMessage $(!STF_LANGUAGE) WARNING "Count equals "$(Count)
  2747.         
  2748.         OpenRegKey $(KeyNt) "" $(CorrectProdHWName)$(Count)"\Parameters" $(!REG_KEY_ALL_ACCESS) TestKey 
  2749.         ifstr $(TestKey) != $(KeyNull) 
  2750.             OpenRegKey $(!REG_H_LOCAL) "" $(NetworkCardsKey)$(Count)"\NetRules" $(!REG_KEY_ALL_ACCESS) NetCardKey 
  2751.             ifstr $(NetCardKey) != $(KeyNull) 
  2752.                 SetRegValue $(NetCardKey) {"InfName",$(NoTitle),$(!REG_VT_SZ),$(!UG_Filename)} 
  2753.                 CloseRegKey $(NetCardKey) 
  2754.             else
  2755.                 goto Emergency_Out
  2756.             endif 
  2757.             CloseRegKey $(TestKey) 
  2758.         endif 
  2759.     
  2760.         ;Increment Loop counter then compare against maximum allowed value
  2761.         set-add Count = $(Count),"1"
  2762.  
  2763.         ifstr(i) $(Count) == $(MaxLoop)
  2764.             
  2765.             goto Emergency_Out
  2766.         else
  2767.             
  2768.             goto Begin_Upgrade_Loop
  2769.         endif
  2770.  
  2771. ;******************************************************************************************************************
  2772. Emergency_Out =+
  2773.  
  2774.  else 
  2775.     goto fatalregistry 
  2776.  endif 
  2777.  ;endif
  2778.  
  2779.  
  2780.  
  2781.  
  2782.  ifstr(i) $(BoomCard) == FALSE  
  2783.      ;install "Install-3nicdiag" 
  2784.      install "Install-OptionNewNDIS"
  2785.      goto laststep   
  2786.  else
  2787.     goto upgradeOldNDIS;
  2788.  endif
  2789.  
  2790. upgradeOldNDIS =+
  2791.  
  2792.  ifstr $(!STF_PLATFORM) == $(INF_PROCESSER) 
  2793.  
  2794.  
  2795.     ifstr(i) (*($(CurrentVersionValue),4)) == $(NT400VersionConstant) 
  2796.  
  2797.         ;OpenRegKey $(!REG_H_LOCAL) "" "SOFTWARE\Microsoft\Windows\CurrentVersion\Run" +      
  2798.         ;$(!REG_KEY_ALL_ACCESS) KeyNt      
  2799.  
  2800.         ;set TrayIconList = {TCASUTIEXE,$(NoTitle),$(!REG_VT_SZ),$(TrayIconExe)" -off"}      
  2801.         ;SetRegValue $(KeyNt) $(TrayIconList) 
  2802.  
  2803.         ;DeleteRegValue $(KeyNt) "COMSMDEXE"
  2804.         ;CloseRegKey $(KeyNt)      
  2805.  
  2806.         ifstr $(Install_3NIC_Diag) == "YES" 
  2807.             Debug-Output "$(InfFile) : (Install_3NIC_Diag) == "YES"" 
  2808.             ; Shell "", DiagRegistry 
  2809.  
  2810.             ; ***
  2811.              ;install "Install-3nicdiag" 
  2812.  
  2813.             set InstallMode_Save = $(!NTN_InstallMode) 
  2814.             set !NTN_InstallMode = install 
  2815.             set SRCDIR_OVERRIDE_Save = $(!STF_SRCDIR_OVERRIDE) 
  2816.             set !STF_SRCDIR_OVERRIDE = $(SrcDir) 
  2817.  
  2818.             Shell $(!STF_WINDOWSSYSPATH)\TCAITDI.INF, InstallOption, $(CurrLang), + 
  2819.             "TCAITDI" ,$(SrcDir), YES, YES, YES, NO 
  2820.             set !NTN_InstallMode = $(InstallMode_Save) 
  2821.             set !STF_SRCDIR_OVERRIDE = $(SRCDIR_OVERRIDE_Save) 
  2822.      
  2823.             ifstr(i) $(Install_Shortcuts) == "YES" 
  2824.                 Debug-Output "$(InfFile) : (Install_Shortcuts) == "YES"" 
  2825.                 ; *** Responsilibity of the MasterNavigator ***
  2826.                 ; RunProgram ExitCode "Windows Directory" "" $(UnInstallerEXE).EXE "-setup" 
  2827.  
  2828.                 ;Debug-Output "$(InfFile) : Enabling Tray Icon" 
  2829.                 ;OpenRegKey $(!REG_H_LOCAL) "" "SOFTWARE\Microsoft\Windows\CurrentVersion\Run" +
  2830.                 ;$(!REG_KEY_ALL_ACCESS) KeyNt 
  2831.  
  2832.                 ;set TrayIconList = {TCASUTIEXE,$(NoTitle),$(!REG_VT_SZ),$(TrayIconExe)" -off"} 
  2833.                 ;SetRegValue $(KeyNt) $(TrayIconList)
  2834.                 ;DeleteRegValue $(KeyNt) "COMSMDEXE" 
  2835.                 ;CloseRegKey $(KeyNt) 
  2836.             endif 
  2837.         endif 
  2838.     endif 
  2839.  endif
  2840.  
  2841.  
  2842.  
  2843.  ;********************************************************************************
  2844.  
  2845.  install "Install-Option"
  2846.  
  2847.  ;*********************************************************************************
  2848. laststep =+
  2849.  ;*********************************************************************************
  2850.  
  2851.  
  2852.  ifstr(i) $(STF_INSTALL_OUTCOME) != STF_SUCCESS 
  2853.     Shell $(UtilityInf) RegistryErrorString "UNABLE_COPY_FILE" 
  2854.     ifint $($ShellCode) != $(!SHELL_CODE_OK) 
  2855.         goto ShellCodeError 
  2856.     endif 
  2857.  
  2858.     set Error = $($R0) 
  2859.     goto fatal 
  2860.  endif
  2861.  
  2862.  ; *** Responsilibity of the MasterNavigator ***
  2863.  ; RunProgram ExitCode "Windows Directory" "" $(UnInstallerEXE).EXE "-upgrade" 
  2864.  goto end
  2865.  
  2866. successful = +
  2867.  Debug-Output "$(InfFile) : Successful"
  2868.  goto end
  2869.  
  2870. abandon = +
  2871.  Debug-Output "$(InfFile) : Abandon"
  2872.  ForListDo $(OEM_ABANDON_OPTIONS)
  2873.      Shell $(UtilityInf), RemoveHardwareComponent, $(Manufacturer), +
  2874.      $(CorrectProdSWName), $($)
  2875.      ifint $($ShellCode) != $(!SHELL_CODE_OK)
  2876.          goto ShellCodeError
  2877.      endif
  2878.  
  2879.      set RegistryErrorIndex = $($R0)
  2880.      Ifstr(i) $(RegistryErrorIndex) != NO_ERROR
  2881.         goto fatalregistry
  2882.      endif    
  2883.  EndForListDo
  2884.  
  2885.  Ifstr(i) $(OEM_ABANDON_SOFTWARE) == TRUE
  2886.     Shell $(UtilityInf), RemoveSoftwareComponent, $(Manufacturer), +
  2887.     $(CorrectProdSWName), FALSE
  2888.     ifint $($ShellCode) != $(!SHELL_CODE_OK)
  2889.         goto ShellCodeError
  2890.     endif
  2891.  
  2892.     detect checkFileExist
  2893.     set Uninst = *($(uninstFound), 1)
  2894.  
  2895.     ; *** Responsilibity of the MasterNavigator ***
  2896.     ;ifstr(i) $(Uninst) == "un3c90xa.exe"
  2897.     ;    ifstr(i) $(!STF_PLATFORM) == $(INF_PROCESSER) 
  2898.     ;        RunProgram ExitCode "Windows Directory" "" $(UnInstallerEXE).EXE "-inf" 
  2899.     ;    endif
  2900.     ;endif
  2901.  
  2902.     set RegistryErrorIndex = $($R0)
  2903.     Ifstr(i) $(RegistryErrorIndex) != NO_ERROR
  2904.         goto fatalregistry
  2905.     endif
  2906.  endif
  2907.  goto end
  2908.  
  2909.  
  2910. warning = +
  2911.  Debug-Output "$(InfFile) : warning"
  2912.  Shell $(subroutineinf) SetupMessage, $(!STF_LANGUAGE), "WARNING", $(Error)
  2913.  ifint $($ShellCode) != $(!SHELL_CODE_OK)
  2914.     goto ShellCodeError
  2915.  endif
  2916.  
  2917.  ifstr(i) $($R1) == "OK"
  2918.     goto $(to)
  2919.  else-ifstr(i) $($R1) == "CANCEL"
  2920.     goto $(from)
  2921.  else
  2922.     goto "end"
  2923.  endif
  2924.  
  2925.  
  2926. nonfatalinfo = +
  2927.  Debug-Output "$(InfFile) : nonfatalinfo"
  2928.  Set CommonStatus = STATUS_USERCANCEL
  2929.  Set Severity = STATUS
  2930.  goto nonfatalmsg
  2931.  
  2932.  
  2933. nonfatal = +
  2934.  Debug-Output "$(InfFile) : nonfatal"
  2935.  Set Severity = NONFATAL
  2936.  goto nonfatalmsg
  2937.  
  2938.  
  2939. nonfatalmsg = +
  2940.  Debug-Output "$(InfFile) : nonfatalmsg"
  2941.  ifstr(i) $(Error) == ""
  2942.     Set Severity = NONFATAL
  2943.     Shell $(UtilityInf) RegistryErrorString "SETUP_FAIL"
  2944.     ifint $($ShellCode) != $(!SHELL_CODE_OK)
  2945.         goto ShellCodeError
  2946.     endif
  2947.  
  2948.     set Error = $($R0)
  2949.  endif
  2950.  
  2951.  Shell $(subroutineinf) SetupMessage, $(!STF_LANGUAGE), $(Severity), $(Error)
  2952.  ifint $($ShellCode) != $(!SHELL_CODE_OK)
  2953.     goto ShellCodeError
  2954.  endif
  2955.  
  2956.  ifstr(i) $($R1) == "OK"
  2957.     goto $(from)
  2958.  else
  2959.     goto "RemoveAdapter"
  2960.  endif
  2961.  
  2962.  
  2963. fatalregistry = +
  2964.  Debug-Output "$(InfFile) : fatalregistry"
  2965.  Shell $(UtilityInf) RegistryErrorString $(RegistryErrorIndex)
  2966.  ifint $($ShellCode) != $(!SHELL_CODE_OK)
  2967.     goto ShellCodeError
  2968.  endif
  2969.  set Error = $($R0)
  2970.  goto fatal
  2971.  
  2972.  
  2973. fatal = +
  2974.  Debug-Output "$(InfFile) : fatal"
  2975.  ifstr(i) $(Error) == ""
  2976.     Shell $(UtilityInf) RegistryErrorString "SETUP_FAIL"
  2977.     ifint $($ShellCode) != $(!SHELL_CODE_OK)
  2978.         goto ShellCodeError
  2979.     endif
  2980.     set Error = $($R0)
  2981.  endif
  2982.  
  2983.  Shell $(subroutineinf) SetupMessage, $(!STF_LANGUAGE), "FATAL", $(Error)
  2984.  ifint $($ShellCode) != $(!SHELL_CODE_OK)
  2985.     goto ShellCodeError
  2986.  endif
  2987.  goto setfailed
  2988.  
  2989.  
  2990. ShellCodeError = +
  2991.  ifint $($ShellCode) == $(!SHELL_CODE_NO_SUCH_INF)
  2992.     Debug-Output "$(InfFile) : ShellCodeError - SHELL_CODE_NO_SUCH_INF"
  2993.  else-ifint $($ShellCode) == $(!SHELL_CODE_NO_SUCH_SECTION)
  2994.     Debug-Output "$(InfFile) : ShellCodeError - SHELL_CODE_NO_SUCH_SECTION"
  2995.  else
  2996.     Debug-Output "$(InfFile) : ShellCodeError - SHELL_CODE_ERROR"
  2997.  endif
  2998.  
  2999.  set DlgType = "MessageBox"
  3000.  set STF_MB_TITLE = $(ShellCodeErrorTitle)
  3001.  set STF_MB_TEXT = $(ShellCodeErrorText) 
  3002.  set STF_MB_TYPE = 1
  3003.  set STF_MB_ICON = 3
  3004.  set STF_MB_DEF = 1
  3005.  ui start "Error Message"
  3006.  goto setfailed
  3007.  
  3008.  
  3009. setfailed = +
  3010.  Debug-Output "$(InfFile) : Setfailed"
  3011.  set CommonStatus = STATUS_FAILED
  3012.  ifstr(i) $(OEM_ABANDON_ON) == TRUE
  3013.     set OEM_ABANDON_ON = FALSE
  3014.     goto abandon
  3015.  endif
  3016.  goto end
  3017.  
  3018.  
  3019. end = +
  3020.  goto term
  3021.  
  3022.  
  3023. term = +
  3024.  Return $(CommonStatus)
  3025.  
  3026.  
  3027.  
  3028. [checkFileExist]
  3029.  uninstFound = {} ? $(!LIBHANDLE) FindFileInstances $(!STF_WINDOWSSYSPATH)"\un3c90xa.exe" 
  3030.  DiagFound = {} ? $(!LIBHANDLE) FindFileInstances $(!STF_WINDOWSSYSPATH)"\tcaudiag.exe" 
  3031.  
  3032. [Install-Option]
  3033.  set STF_VITAL = ""
  3034.  set STF_OVERWRITE = "VERIFYSOURCEOLDER"
  3035.  Debug-Output $(InfName)"Adding files: Files-$(NDIS_VER), SrcDir=$(SrcDir)"
  3036.  AddSectionFilesToCopyList Files-$(NDIS_VER) $(SrcDir) $(!STF_WINDOWSSYSPATH)\drivers
  3037.  
  3038.     ; DA installationn is now the responsibility of the Master Navigator
  3039.     ; ifstr(i) (*($(CurrentVersionValue),4)) == $(NT400VersionConstant) 
  3040.     ;     AddSectionFilesToCopyList Files-DA $(SrcDir) $(!STF_WINDOWSSYSPATH)
  3041.     ; endif
  3042.  
  3043.  set !STF_NCPA_FLUSH_COPYLIST = TRUE
  3044.  CopyFilesInCopyList
  3045.  Exit
  3046.  
  3047.  ;***********************************************************************************
  3048. [Install-OptionNewNDIS]
  3049.  set STF_VITAL = ""
  3050.  set STF_OVERWRITE = "VERIFYSOURCEOLDER"
  3051.  Debug-Output $(InfName)"Adding files: Files-$(NDIS_VER), SrcDir=$(SrcDir)"
  3052.  AddSectionFilesToCopyList Files-905BC$(NDIS_VER) $(SrcDir) $(!STF_WINDOWSSYSPATH)\drivers
  3053.  set !STF_NCPA_FLUSH_COPYLIST = TRUE
  3054.  CopyFilesInCopyList
  3055.  Exit
  3056.  ;**************************************************************************************
  3057.  
  3058. [Install-3nicdiag]
  3059.  set STF_VITAL = ""
  3060.  set STF_OVERWRITE = "VERIFYSOURCEOLDER"
  3061.  AddSectionFilesToCopyList Files-3nicdiag $(SrcDir) $(!STF_WINDOWSSYSPATH)
  3062.  ;AddSectionFilesToCopyList Files-Cpl $(SrcDir) $(!STF_WINDOWSPATH)
  3063.  set !STF_NCPA_FLUSH_COPYLIST = TRUE
  3064.  CopyFilesInCopyList
  3065.  Exit
  3066.  
  3067. [Install-INF]
  3068.  set STF_VITAL = ""
  3069.  AddSectionFilesToCopyList Files-Inf $(SrcDir) $(!STF_WINDOWSSYSPATH)
  3070.  set !STF_NCPA_FLUSH_COPYLIST = TRUE
  3071.  CopyFilesInCopyList
  3072.  Exit
  3073.  
  3074.  
  3075. [Install-Uninstaller]
  3076.  set STF_VITAL = ""
  3077.  set STF_OVERWRITE = "VERIFYSOURCEOLDER"
  3078.  AddSectionFilesToCopyList Files-Uninstaller $(SrcDir) $(!STF_WINDOWSSYSPATH)
  3079.  set !STF_NCPA_FLUSH_COPYLIST = TRUE
  3080.  CopyFilesInCopyList
  3081.  Exit
  3082.  
  3083. [Install-OTHER]
  3084.  set STF_VITAL = ""
  3085.  set STF_OVERWRITE = "VERIFYSOURCEOLDER"
  3086.  AddSectionFilesToCopyList Files-OTHER $(SrcDir) $(!STF_WINDOWSSYSPATH)
  3087.  set !STF_NCPA_FLUSH_COPYLIST = TRUE
  3088.  CopyFilesInCopyList
  3089.  Exit
  3090.  
  3091. [Source Media Descriptions]
  3092.  1 = "ECD520P90X", TAGFILE = 3CDdisk1 
  3093.  
  3094. [ProductType]
  3095.  STF_PRODUCT = Winnt
  3096.  
  3097. [Files-Inf] 
  3098.  1, oemsetup.inf,SIZE=36000, RENAME=$(!UG_Filename)
  3099.  
  3100. [Files-905BCNDIS3]
  3101.  1,EL90xBC3.SYS , SIZE=25001
  3102.  
  3103. [Files-905BCNDIS4]
  3104.  1,EL90xBC4.SYS , SIZE=25001
  3105.  
  3106. [Files-NDIS3]
  3107.  1,EL90xnd3.SYS , SIZE=25001
  3108.  
  3109. [Files-NDIS4]
  3110.  1,EL90xnd4.SYS , SIZE=25001
  3111.  
  3112. [Files-Configuration]
  3113. 1,NT4_CFG.EXE    , SIZE=592000
  3114.  
  3115. [Files-3nicdiag]
  3116.  
  3117.  1,TCAUDIAG.EXE, SIZE=165504
  3118.  1,TCAUDIAG.URL, SIZE=15
  3119.  1,TCAUDIAG.HLP, SIZE=20877
  3120.  1,TCAUPROT.HLP, SIZE=20877
  3121.  1,TCAUM90X.HLP, SIZE=20877
  3122.  1,TCAUDCUS.TXT, SIZE=113
  3123.  1,TCAUDEXP.TXT, SIZE=113
  3124.  1,TCAUPROT.DLL, SIZE=12345
  3125.  1,TCAUM90X.DLL, SIZE=12345
  3126.  1,TCAMHWAC.DLL, SIZE=20198
  3127.  1,TCAICCHG.SYS, SIZE=5000
  3128.  1,TCAITDI.INF, SIZE=15000
  3129.  
  3130. [Files-DA]
  3131.  1,DAINST.EXE, SIZE=800000
  3132.  
  3133. [Files-Uninstaller]
  3134.  1,UN3C90XA.EXE,     SIZE=6617
  3135.  
  3136. [Files-OTHER]
  3137.  1, NT4_CFG.EXE,    SIZE=24000
  3138.  1, PCI_DATA.EXE,     SIZE=65
  3139.  1, PCI_FIX.SYS,    SIZE=65
  3140.  
  3141. [LanguagesSupported]
  3142.  ENG
  3143.  
  3144. [OptionsTextENG]
  3145.  3C90X = "3Com EtherLink PCI NIC"
  3146.  
  3147. [FileConstantsENG]
  3148.  ProCaption = "Windows NT NIC Setup"
  3149.  ProCancel = "Cancel"
  3150.  ProCancelMsg = "Windows NT Networking is not correctly installed. "+
  3151.  "Are you sure you want to cancel copying files?"
  3152.  ProCancelCap = "Network Setup Message"
  3153.  ProText1 = "Copying:"
  3154.  ProText2 = "To:"
  3155.  
  3156.  ConnectionList = ^(ConnectionChoices, 1)
  3157.  ConnectionValues = ^(ConnectionChoices, 2)
  3158.  NoList = ^(NoChoices, 1)
  3159.  NoValues = ^(NoChoices, 2)
  3160.  ShellCodeErrorTitle = "Error: "$(Function$(Option)Title)
  3161.  ShellCodeErrorText = "Shell Code Error."
  3162.  CANNOT_FIND_ANY_CARD = "Network card is not present in the system"
  3163.  CANNOT_FIND_ANY_UNINSTALLED_CARD = "All the NICs supported by this product have already been installed."
  3164.  
  3165. [DialogConstantsENG]
  3166.  Help = "&Help"
  3167.  Exit = "Cancel"
  3168.  OK = "OK"
  3169.  HelpContext = ""
  3170.  Continue = "Continue"
  3171.  Cancel = "Cancel"
  3172.  
  3173. ;(%VER OEMSETUP.INF - Installation file for 3C90X - v5.4.10)
  3174.